| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914 |
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 1
- 1 .cpu cortex-m4
- 2 .arch armv7e-m
- 3 .fpu fpv4-sp-d16
- 4 .eabi_attribute 27, 1
- 5 .eabi_attribute 28, 1
- 6 .eabi_attribute 20, 1
- 7 .eabi_attribute 21, 1
- 8 .eabi_attribute 23, 3
- 9 .eabi_attribute 24, 1
- 10 .eabi_attribute 25, 1
- 11 .eabi_attribute 26, 1
- 12 .eabi_attribute 30, 6
- 13 .eabi_attribute 34, 1
- 14 .eabi_attribute 18, 4
- 15 .file "stm32f3xx_hal_i2c.c"
- 16 .text
- 17 .Ltext0:
- 18 .cfi_sections .debug_frame
- 19 .section .rodata
- 20 .align 2
- 21 .LC0:
- 22 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c."
- 22 6572732F
- 22 53544D33
- 22 32463378
- 22 785F4841
- 23 0033 6300 .ascii "c\000"
- 24 .section .text.HAL_I2C_Init,"ax",%progbits
- 25 .align 1
- 26 .global HAL_I2C_Init
- 27 .syntax unified
- 28 .thumb
- 29 .thumb_func
- 31 HAL_I2C_Init:
- 32 .LFB130:
- 33 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c"
- 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
- 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @file stm32f3xx_hal_i2c.c
- 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @author MCD Application Team
- 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver.
- 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This file provides firmware functions to manage the following
- 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
- 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Initialization and de-initialization functions
- 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + IO operation functions
- 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Peripheral State and Errors functions
- 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
- 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @attention
- 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Copyright (c) 2016 STMicroelectronics.
- 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved.
- 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file
- 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the root directory of this software component.
- 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
- 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 2
- 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
- 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
- 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
- 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### How to use this driver #####
- 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
- 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
- 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
- 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
- 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
- 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
- 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) I2C pins configuration
- 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
- 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
- 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
- 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
- 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
- 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
- 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for
- 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the transmit or receive channel
- 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
- 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
- 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
- 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
- 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
- 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the DMA Tx or Rx channel
- 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
- 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
- 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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
- 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
- 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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
- 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 :
- 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO operation ***
- 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
- 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 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(
- 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()
- 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()
- 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()
- 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
- 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =====================================
- 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 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
- 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_
- 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO operation ***
- 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===================================
- 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 3
- 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
- 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
- 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
- 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
- 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
- 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
- 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
- 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
- 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
- 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_
- 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
- 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
- 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
- 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
- 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
- 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
- 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
- 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
- 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
- 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
- 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==========================================================
- 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
- 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** when a direction change during transfer
- 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
- 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below:
- 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac
- 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** no sequential mode
- 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
- 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and data to transfer without a final stop condition
- 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
- 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond
- 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** an then permit a call the same master sequential interface several time
- 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit
- 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D
- 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
- 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
- 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
- 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
- 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
- 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
- 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
- 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
- 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
- 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after several call of the same master sequential interface several time
- 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME).
- 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one using
- 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
- 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
- 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
- 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
- 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME.
- 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit
- 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 4
- 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
- 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
- 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each call of the same master sequential
- 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** interface.
- 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
- 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each bytes using
- 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
- 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
- 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
- 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
- 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME.
- 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
- 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** generation of STOP condition.
- 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below:
- 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
- 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA()
- 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
- 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC
- 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
- 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA()
- 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
- 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
- 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
- 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
- 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
- 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()
- 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_DisableListen_IT()
- 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can
- 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
- 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (Write/Read).
- 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can
- 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback()
- 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
- 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA()
- 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
- 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa
- 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
- 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA()
- 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
- 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
- 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
- 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
- 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
- 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
- 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
- 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =======================================
- 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 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
- 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
- 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
- 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
- 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
- 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
- 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
- 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 5
- 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
- 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
- 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO operation ***
- 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================
- 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
- 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
- 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
- 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
- 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
- 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
- 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
- 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
- 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
- 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
- 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
- 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
- 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
- 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
- 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
- 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
- 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
- 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
- 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
- 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
- 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
- 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
- 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
- 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
- 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
- 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 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
- 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
- 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
- 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
- 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
- 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
- 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
- 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
- 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
- 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
- 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** I2C HAL driver macros list ***
- 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==================================
- 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
- 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
- 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
- 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
- 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
- 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
- 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
- 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 6
- 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Callback registration ***
- 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================
- 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
- 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
- 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback()
- 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to register an interrupt callback.
- 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks:
- 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
- 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
- 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
- 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
- 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
- 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
- 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
- 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
- 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
- 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
- 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
- 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
- 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and a pointer to the user callback function.
- 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall
- 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default
- 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** weak function.
- 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
- 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the Callback ID.
- 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function allows to reset following callbacks:
- 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
- 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
- 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
- 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
- 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
- 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
- 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
- 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
- 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
- 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
- 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
- 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback().
- 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 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
- 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
- 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback().
- 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
- 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
- 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
- 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit()
- 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
- 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only.
- 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
- 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state,
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 7
- 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
- 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
- 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit()
- 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Init() function.
- 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
- 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
- 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** are set to the corresponding weak functions.
- 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
- 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
- 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
- 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h"
- 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver
- 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C I2C
- 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver
- 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
- 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
- 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
- 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
- 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
- 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
- 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
- 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
- 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
- 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
- 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
- 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
- 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
- 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
- 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
- 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U
- 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U
- 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
- 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 | \
- 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \
- 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
- 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */
- 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
- 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 8
- 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) | \
- 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
- 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */
- 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) | \
- 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
- 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */
- 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) | \
- 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
- 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */
- 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) | \
- 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
- 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */
- 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) | \
- 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
- 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
- 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) | \
- 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
- 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
- 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
- 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with
- 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
- 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with
- 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
- 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
- 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */
- 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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
- 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */
- 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
- 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
- 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
- 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
- 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/
- 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro
- 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */
- 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__)
- 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
- 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
- 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
- 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
- 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 9
- 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
- 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
- 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
- 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
- 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
- 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
- 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
- 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
- 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
- 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
- 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
- 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
- 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
- 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
- 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
- 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
- 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
- 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
- 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
- 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
- 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
- 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
- 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
- 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
- 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
- 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
- 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
- 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
- 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
- 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart);
- 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
- 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
- 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
- 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
- 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
- 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
- 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
- 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */
- 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
- 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 10
- 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */
- 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
- 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
- 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
- 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request);
- 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */
- 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
- 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
- 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
- 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
- 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions
- 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
- 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
- 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
- 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
- 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
- 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
- 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
- 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
- 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
- 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration:
- 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing
- 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1
- 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
- 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode
- 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2
- 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask
- 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode
- 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode
- 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
- 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral.
- 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
- 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
- 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
- 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 11
- 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
- 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 34 .loc 1 536 1
- 35 .cfi_startproc
- 36 @ args = 0, pretend = 0, frame = 8
- 37 @ frame_needed = 1, uses_anonymous_args = 0
- 38 0000 80B5 push {r7, lr}
- 39 .LCFI0:
- 40 .cfi_def_cfa_offset 8
- 41 .cfi_offset 7, -8
- 42 .cfi_offset 14, -4
- 43 0002 82B0 sub sp, sp, #8
- 44 .LCFI1:
- 45 .cfi_def_cfa_offset 16
- 46 0004 00AF add r7, sp, #0
- 47 .LCFI2:
- 48 .cfi_def_cfa_register 7
- 49 0006 7860 str r0, [r7, #4]
- 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
- 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
- 50 .loc 1 538 6
- 51 0008 7B68 ldr r3, [r7, #4]
- 52 000a 002B cmp r3, #0
- 53 000c 01D1 bne .L2
- 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 54 .loc 1 540 12
- 55 000e 0123 movs r3, #1
- 56 0010 0BE1 b .L3
- 57 .L2:
- 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
- 58 .loc 1 544 3
- 59 0012 7B68 ldr r3, [r7, #4]
- 60 0014 1B68 ldr r3, [r3]
- 61 0016 874A ldr r2, .L17
- 62 0018 9342 cmp r3, r2
- 63 001a 09D0 beq .L4
- 64 .loc 1 544 3 is_stmt 0 discriminator 1
- 65 001c 7B68 ldr r3, [r7, #4]
- 66 001e 1B68 ldr r3, [r3]
- 67 0020 854A ldr r2, .L17+4
- 68 0022 9342 cmp r3, r2
- 69 0024 04D0 beq .L4
- 70 .loc 1 544 3 discriminator 2
- 71 0026 4FF40871 mov r1, #544
- 72 002a 8448 ldr r0, .L17+8
- 73 002c FFF7FEFF bl assert_failed
- 74 .L4:
- 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
- 75 .loc 1 545 3 is_stmt 1
- 76 0030 7B68 ldr r3, [r7, #4]
- 77 0032 9B68 ldr r3, [r3, #8]
- 78 0034 B3F5806F cmp r3, #1024
- 79 0038 04D3 bcc .L5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 12
- 80 .loc 1 545 3 is_stmt 0 discriminator 1
- 81 003a 40F22121 movw r1, #545
- 82 003e 7F48 ldr r0, .L17+8
- 83 0040 FFF7FEFF bl assert_failed
- 84 .L5:
- 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
- 85 .loc 1 546 3 is_stmt 1
- 86 0044 7B68 ldr r3, [r7, #4]
- 87 0046 DB68 ldr r3, [r3, #12]
- 88 0048 012B cmp r3, #1
- 89 004a 08D0 beq .L6
- 90 .loc 1 546 3 is_stmt 0 discriminator 1
- 91 004c 7B68 ldr r3, [r7, #4]
- 92 004e DB68 ldr r3, [r3, #12]
- 93 0050 022B cmp r3, #2
- 94 0052 04D0 beq .L6
- 95 .loc 1 546 3 discriminator 2
- 96 0054 40F22221 movw r1, #546
- 97 0058 7848 ldr r0, .L17+8
- 98 005a FFF7FEFF bl assert_failed
- 99 .L6:
- 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
- 100 .loc 1 547 3 is_stmt 1
- 101 005e 7B68 ldr r3, [r7, #4]
- 102 0060 1B69 ldr r3, [r3, #16]
- 103 0062 002B cmp r3, #0
- 104 0064 09D0 beq .L7
- 105 .loc 1 547 3 is_stmt 0 discriminator 1
- 106 0066 7B68 ldr r3, [r7, #4]
- 107 0068 1B69 ldr r3, [r3, #16]
- 108 006a B3F5004F cmp r3, #32768
- 109 006e 04D0 beq .L7
- 110 .loc 1 547 3 discriminator 2
- 111 0070 40F22321 movw r1, #547
- 112 0074 7148 ldr r0, .L17+8
- 113 0076 FFF7FEFF bl assert_failed
- 114 .L7:
- 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
- 115 .loc 1 548 3 is_stmt 1
- 116 007a 7B68 ldr r3, [r7, #4]
- 117 007c 5B69 ldr r3, [r3, #20]
- 118 007e FF2B cmp r3, #255
- 119 0080 04D9 bls .L8
- 120 .loc 1 548 3 is_stmt 0 discriminator 1
- 121 0082 4FF40971 mov r1, #548
- 122 0086 6D48 ldr r0, .L17+8
- 123 0088 FFF7FEFF bl assert_failed
- 124 .L8:
- 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
- 125 .loc 1 549 3 is_stmt 1
- 126 008c 7B68 ldr r3, [r7, #4]
- 127 008e 9B69 ldr r3, [r3, #24]
- 128 0090 002B cmp r3, #0
- 129 0092 20D0 beq .L9
- 130 .loc 1 549 3 is_stmt 0 discriminator 1
- 131 0094 7B68 ldr r3, [r7, #4]
- 132 0096 9B69 ldr r3, [r3, #24]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 13
- 133 0098 012B cmp r3, #1
- 134 009a 1CD0 beq .L9
- 135 .loc 1 549 3 discriminator 2
- 136 009c 7B68 ldr r3, [r7, #4]
- 137 009e 9B69 ldr r3, [r3, #24]
- 138 00a0 022B cmp r3, #2
- 139 00a2 18D0 beq .L9
- 140 .loc 1 549 3 discriminator 3
- 141 00a4 7B68 ldr r3, [r7, #4]
- 142 00a6 9B69 ldr r3, [r3, #24]
- 143 00a8 032B cmp r3, #3
- 144 00aa 14D0 beq .L9
- 145 .loc 1 549 3 discriminator 4
- 146 00ac 7B68 ldr r3, [r7, #4]
- 147 00ae 9B69 ldr r3, [r3, #24]
- 148 00b0 042B cmp r3, #4
- 149 00b2 10D0 beq .L9
- 150 .loc 1 549 3 discriminator 5
- 151 00b4 7B68 ldr r3, [r7, #4]
- 152 00b6 9B69 ldr r3, [r3, #24]
- 153 00b8 052B cmp r3, #5
- 154 00ba 0CD0 beq .L9
- 155 .loc 1 549 3 discriminator 6
- 156 00bc 7B68 ldr r3, [r7, #4]
- 157 00be 9B69 ldr r3, [r3, #24]
- 158 00c0 062B cmp r3, #6
- 159 00c2 08D0 beq .L9
- 160 .loc 1 549 3 discriminator 7
- 161 00c4 7B68 ldr r3, [r7, #4]
- 162 00c6 9B69 ldr r3, [r3, #24]
- 163 00c8 072B cmp r3, #7
- 164 00ca 04D0 beq .L9
- 165 .loc 1 549 3 discriminator 8
- 166 00cc 40F22521 movw r1, #549
- 167 00d0 5A48 ldr r0, .L17+8
- 168 00d2 FFF7FEFF bl assert_failed
- 169 .L9:
- 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
- 170 .loc 1 550 3 is_stmt 1
- 171 00d6 7B68 ldr r3, [r7, #4]
- 172 00d8 DB69 ldr r3, [r3, #28]
- 173 00da 002B cmp r3, #0
- 174 00dc 09D0 beq .L10
- 175 .loc 1 550 3 is_stmt 0 discriminator 1
- 176 00de 7B68 ldr r3, [r7, #4]
- 177 00e0 DB69 ldr r3, [r3, #28]
- 178 00e2 B3F5002F cmp r3, #524288
- 179 00e6 04D0 beq .L10
- 180 .loc 1 550 3 discriminator 2
- 181 00e8 40F22621 movw r1, #550
- 182 00ec 5348 ldr r0, .L17+8
- 183 00ee FFF7FEFF bl assert_failed
- 184 .L10:
- 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
- 185 .loc 1 551 3 is_stmt 1
- 186 00f2 7B68 ldr r3, [r7, #4]
- 187 00f4 1B6A ldr r3, [r3, #32]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 14
- 188 00f6 002B cmp r3, #0
- 189 00f8 09D0 beq .L11
- 190 .loc 1 551 3 is_stmt 0 discriminator 1
- 191 00fa 7B68 ldr r3, [r7, #4]
- 192 00fc 1B6A ldr r3, [r3, #32]
- 193 00fe B3F5003F cmp r3, #131072
- 194 0102 04D0 beq .L11
- 195 .loc 1 551 3 discriminator 2
- 196 0104 40F22721 movw r1, #551
- 197 0108 4C48 ldr r0, .L17+8
- 198 010a FFF7FEFF bl assert_failed
- 199 .L11:
- 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
- 200 .loc 1 553 11 is_stmt 1
- 201 010e 7B68 ldr r3, [r7, #4]
- 202 0110 93F84130 ldrb r3, [r3, #65]
- 203 0114 DBB2 uxtb r3, r3
- 204 .loc 1 553 6
- 205 0116 002B cmp r3, #0
- 206 0118 06D1 bne .L12
- 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
- 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
- 207 .loc 1 556 16
- 208 011a 7B68 ldr r3, [r7, #4]
- 209 011c 0022 movs r2, #0
- 210 011e 83F84020 strb r2, [r3, #64]
- 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */
- 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
- 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
- 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
- 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
- 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
- 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
- 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
- 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
- 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
- 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
- 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
- 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
- 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
- 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
- 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
- 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
- 211 .loc 1 580 5
- 212 0122 7868 ldr r0, [r7, #4]
- 213 0124 FFF7FEFF bl HAL_I2C_MspInit
- 214 .L12:
- 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 15
- 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
- 215 .loc 1 584 15
- 216 0128 7B68 ldr r3, [r7, #4]
- 217 012a 2422 movs r2, #36
- 218 012c 83F84120 strb r2, [r3, #65]
- 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
- 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
- 219 .loc 1 587 3
- 220 0130 7B68 ldr r3, [r7, #4]
- 221 0132 1B68 ldr r3, [r3]
- 222 0134 1A68 ldr r2, [r3]
- 223 0136 7B68 ldr r3, [r7, #4]
- 224 0138 1B68 ldr r3, [r3]
- 225 013a 22F00102 bic r2, r2, #1
- 226 013e 1A60 str r2, [r3]
- 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
- 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
- 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
- 227 .loc 1 591 39
- 228 0140 7B68 ldr r3, [r7, #4]
- 229 0142 5A68 ldr r2, [r3, #4]
- 230 .loc 1 591 7
- 231 0144 7B68 ldr r3, [r7, #4]
- 232 0146 1B68 ldr r3, [r3]
- 233 .loc 1 591 47
- 234 0148 22F07062 bic r2, r2, #251658240
- 235 .loc 1 591 27
- 236 014c 1A61 str r2, [r3, #16]
- 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
- 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
- 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
- 237 .loc 1 595 7
- 238 014e 7B68 ldr r3, [r7, #4]
- 239 0150 1B68 ldr r3, [r3]
- 240 .loc 1 595 24
- 241 0152 9A68 ldr r2, [r3, #8]
- 242 .loc 1 595 7
- 243 0154 7B68 ldr r3, [r7, #4]
- 244 0156 1B68 ldr r3, [r3]
- 245 .loc 1 595 24
- 246 0158 22F40042 bic r2, r2, #32768
- 247 015c 9A60 str r2, [r3, #8]
- 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
- 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
- 248 .loc 1 598 17
- 249 015e 7B68 ldr r3, [r7, #4]
- 250 0160 DB68 ldr r3, [r3, #12]
- 251 .loc 1 598 6
- 252 0162 012B cmp r3, #1
- 253 0164 07D1 bne .L13
- 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 16
- 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
- 254 .loc 1 600 56
- 255 0166 7B68 ldr r3, [r7, #4]
- 256 0168 9A68 ldr r2, [r3, #8]
- 257 .loc 1 600 9
- 258 016a 7B68 ldr r3, [r7, #4]
- 259 016c 1B68 ldr r3, [r3]
- 260 .loc 1 600 44
- 261 016e 42F40042 orr r2, r2, #32768
- 262 .loc 1 600 26
- 263 0172 9A60 str r2, [r3, #8]
- 264 0174 06E0 b .L14
- 265 .L13:
- 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
- 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
- 266 .loc 1 604 75
- 267 0176 7B68 ldr r3, [r7, #4]
- 268 0178 9A68 ldr r2, [r3, #8]
- 269 .loc 1 604 9
- 270 017a 7B68 ldr r3, [r7, #4]
- 271 017c 1B68 ldr r3, [r3]
- 272 .loc 1 604 63
- 273 017e 42F40442 orr r2, r2, #33792
- 274 .loc 1 604 26
- 275 0182 9A60 str r2, [r3, #8]
- 276 .L14:
- 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
- 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
- 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
- 277 .loc 1 609 17
- 278 0184 7B68 ldr r3, [r7, #4]
- 279 0186 DB68 ldr r3, [r3, #12]
- 280 .loc 1 609 6
- 281 0188 022B cmp r3, #2
- 282 018a 08D1 bne .L15
- 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
- 283 .loc 1 611 5
- 284 018c 7B68 ldr r3, [r7, #4]
- 285 018e 1B68 ldr r3, [r3]
- 286 0190 5A68 ldr r2, [r3, #4]
- 287 0192 7B68 ldr r3, [r7, #4]
- 288 0194 1B68 ldr r3, [r3]
- 289 0196 42F40062 orr r2, r2, #2048
- 290 019a 5A60 str r2, [r3, #4]
- 291 019c 07E0 b .L16
- 292 .L15:
- 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */
- 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
- 293 .loc 1 616 5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 17
- 294 019e 7B68 ldr r3, [r7, #4]
- 295 01a0 1B68 ldr r3, [r3]
- 296 01a2 5A68 ldr r2, [r3, #4]
- 297 01a4 7B68 ldr r3, [r7, #4]
- 298 01a6 1B68 ldr r3, [r3]
- 299 01a8 22F40062 bic r2, r2, #2048
- 300 01ac 5A60 str r2, [r3, #4]
- 301 .L16:
- 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 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 */
- 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
- 302 .loc 1 619 7
- 303 01ae 7B68 ldr r3, [r7, #4]
- 304 01b0 1B68 ldr r3, [r3]
- 305 .loc 1 619 23
- 306 01b2 5B68 ldr r3, [r3, #4]
- 307 .loc 1 619 7
- 308 01b4 7A68 ldr r2, [r7, #4]
- 309 01b6 1268 ldr r2, [r2]
- 310 .loc 1 619 23
- 311 01b8 43F00073 orr r3, r3, #33554432
- 312 01bc 43F40043 orr r3, r3, #32768
- 313 01c0 5360 str r3, [r2, #4]
- 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
- 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
- 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
- 314 .loc 1 623 7
- 315 01c2 7B68 ldr r3, [r7, #4]
- 316 01c4 1B68 ldr r3, [r3]
- 317 .loc 1 623 24
- 318 01c6 DA68 ldr r2, [r3, #12]
- 319 .loc 1 623 7
- 320 01c8 7B68 ldr r3, [r7, #4]
- 321 01ca 1B68 ldr r3, [r3]
- 322 .loc 1 623 24
- 323 01cc 22F40042 bic r2, r2, #32768
- 324 01d0 DA60 str r2, [r3, #12]
- 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
- 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
- 325 .loc 1 626 37
- 326 01d2 7B68 ldr r3, [r7, #4]
- 327 01d4 1A69 ldr r2, [r3, #16]
- 328 .loc 1 626 66
- 329 01d6 7B68 ldr r3, [r7, #4]
- 330 01d8 5B69 ldr r3, [r3, #20]
- 331 .loc 1 626 54
- 332 01da 42EA0301 orr r1, r2, r3
- 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
- 333 .loc 1 627 38
- 334 01de 7B68 ldr r3, [r7, #4]
- 335 01e0 9B69 ldr r3, [r3, #24]
- 336 .loc 1 627 56
- 337 01e2 1A02 lsls r2, r3, #8
- 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
- 338 .loc 1 626 7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 18
- 339 01e4 7B68 ldr r3, [r7, #4]
- 340 01e6 1B68 ldr r3, [r3]
- 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
- 341 .loc 1 626 79
- 342 01e8 0A43 orrs r2, r2, r1
- 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
- 343 .loc 1 626 24
- 344 01ea DA60 str r2, [r3, #12]
- 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
- 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
- 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
- 345 .loc 1 631 36
- 346 01ec 7B68 ldr r3, [r7, #4]
- 347 01ee D969 ldr r1, [r3, #28]
- 348 .loc 1 631 65
- 349 01f0 7B68 ldr r3, [r7, #4]
- 350 01f2 1A6A ldr r2, [r3, #32]
- 351 .loc 1 631 7
- 352 01f4 7B68 ldr r3, [r7, #4]
- 353 01f6 1B68 ldr r3, [r3]
- 354 .loc 1 631 53
- 355 01f8 0A43 orrs r2, r2, r1
- 356 .loc 1 631 23
- 357 01fa 1A60 str r2, [r3]
- 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
- 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
- 358 .loc 1 634 3
- 359 01fc 7B68 ldr r3, [r7, #4]
- 360 01fe 1B68 ldr r3, [r3]
- 361 0200 1A68 ldr r2, [r3]
- 362 0202 7B68 ldr r3, [r7, #4]
- 363 0204 1B68 ldr r3, [r3]
- 364 0206 42F00102 orr r2, r2, #1
- 365 020a 1A60 str r2, [r3]
- 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 366 .loc 1 636 19
- 367 020c 7B68 ldr r3, [r7, #4]
- 368 020e 0022 movs r2, #0
- 369 0210 5A64 str r2, [r3, #68]
- 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 370 .loc 1 637 15
- 371 0212 7B68 ldr r3, [r7, #4]
- 372 0214 2022 movs r2, #32
- 373 0216 83F84120 strb r2, [r3, #65]
- 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 374 .loc 1 638 23
- 375 021a 7B68 ldr r3, [r7, #4]
- 376 021c 0022 movs r2, #0
- 377 021e 1A63 str r2, [r3, #48]
- 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 378 .loc 1 639 14
- 379 0220 7B68 ldr r3, [r7, #4]
- 380 0222 0022 movs r2, #0
- 381 0224 83F84220 strb r2, [r3, #66]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 19
- 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 382 .loc 1 641 10
- 383 0228 0023 movs r3, #0
- 384 .L3:
- 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 385 .loc 1 642 1
- 386 022a 1846 mov r0, r3
- 387 022c 0837 adds r7, r7, #8
- 388 .LCFI3:
- 389 .cfi_def_cfa_offset 8
- 390 022e BD46 mov sp, r7
- 391 .LCFI4:
- 392 .cfi_def_cfa_register 13
- 393 @ sp needed
- 394 0230 80BD pop {r7, pc}
- 395 .L18:
- 396 0232 00BF .align 2
- 397 .L17:
- 398 0234 00540040 .word 1073763328
- 399 0238 00580040 .word 1073764352
- 400 023c 00000000 .word .LC0
- 401 .cfi_endproc
- 402 .LFE130:
- 404 .section .text.HAL_I2C_DeInit,"ax",%progbits
- 405 .align 1
- 406 .global HAL_I2C_DeInit
- 407 .syntax unified
- 408 .thumb
- 409 .thumb_func
- 411 HAL_I2C_DeInit:
- 412 .LFB131:
- 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
- 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
- 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 413 .loc 1 651 1
- 414 .cfi_startproc
- 415 @ args = 0, pretend = 0, frame = 8
- 416 @ frame_needed = 1, uses_anonymous_args = 0
- 417 0000 80B5 push {r7, lr}
- 418 .LCFI5:
- 419 .cfi_def_cfa_offset 8
- 420 .cfi_offset 7, -8
- 421 .cfi_offset 14, -4
- 422 0002 82B0 sub sp, sp, #8
- 423 .LCFI6:
- 424 .cfi_def_cfa_offset 16
- 425 0004 00AF add r7, sp, #0
- 426 .LCFI7:
- 427 .cfi_def_cfa_register 7
- 428 0006 7860 str r0, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 20
- 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
- 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
- 429 .loc 1 653 6
- 430 0008 7B68 ldr r3, [r7, #4]
- 431 000a 002B cmp r3, #0
- 432 000c 01D1 bne .L20
- 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 433 .loc 1 655 12
- 434 000e 0123 movs r3, #1
- 435 0010 30E0 b .L21
- 436 .L20:
- 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
- 437 .loc 1 659 3
- 438 0012 7B68 ldr r3, [r7, #4]
- 439 0014 1B68 ldr r3, [r3]
- 440 0016 194A ldr r2, .L23
- 441 0018 9342 cmp r3, r2
- 442 001a 09D0 beq .L22
- 443 .loc 1 659 3 is_stmt 0 discriminator 1
- 444 001c 7B68 ldr r3, [r7, #4]
- 445 001e 1B68 ldr r3, [r3]
- 446 0020 174A ldr r2, .L23+4
- 447 0022 9342 cmp r3, r2
- 448 0024 04D0 beq .L22
- 449 .loc 1 659 3 discriminator 2
- 450 0026 40F29321 movw r1, #659
- 451 002a 1648 ldr r0, .L23+8
- 452 002c FFF7FEFF bl assert_failed
- 453 .L22:
- 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
- 454 .loc 1 661 15 is_stmt 1
- 455 0030 7B68 ldr r3, [r7, #4]
- 456 0032 2422 movs r2, #36
- 457 0034 83F84120 strb r2, [r3, #65]
- 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
- 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
- 458 .loc 1 664 3
- 459 0038 7B68 ldr r3, [r7, #4]
- 460 003a 1B68 ldr r3, [r3]
- 461 003c 1A68 ldr r2, [r3]
- 462 003e 7B68 ldr r3, [r7, #4]
- 463 0040 1B68 ldr r3, [r3]
- 464 0042 22F00102 bic r2, r2, #1
- 465 0046 1A60 str r2, [r3]
- 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
- 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
- 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 21
- 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
- 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
- 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
- 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
- 466 .loc 1 676 3
- 467 0048 7868 ldr r0, [r7, #4]
- 468 004a FFF7FEFF bl HAL_I2C_MspDeInit
- 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 469 .loc 1 679 19
- 470 004e 7B68 ldr r3, [r7, #4]
- 471 0050 0022 movs r2, #0
- 472 0052 5A64 str r2, [r3, #68]
- 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
- 473 .loc 1 680 15
- 474 0054 7B68 ldr r3, [r7, #4]
- 475 0056 0022 movs r2, #0
- 476 0058 83F84120 strb r2, [r3, #65]
- 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 477 .loc 1 681 23
- 478 005c 7B68 ldr r3, [r7, #4]
- 479 005e 0022 movs r2, #0
- 480 0060 1A63 str r2, [r3, #48]
- 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 481 .loc 1 682 14
- 482 0062 7B68 ldr r3, [r7, #4]
- 483 0064 0022 movs r2, #0
- 484 0066 83F84220 strb r2, [r3, #66]
- 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
- 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 485 .loc 1 685 3
- 486 006a 7B68 ldr r3, [r7, #4]
- 487 006c 0022 movs r2, #0
- 488 006e 83F84020 strb r2, [r3, #64]
- 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 489 .loc 1 687 10
- 490 0072 0023 movs r3, #0
- 491 .L21:
- 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 492 .loc 1 688 1
- 493 0074 1846 mov r0, r3
- 494 0076 0837 adds r7, r7, #8
- 495 .LCFI8:
- 496 .cfi_def_cfa_offset 8
- 497 0078 BD46 mov sp, r7
- 498 .LCFI9:
- 499 .cfi_def_cfa_register 13
- 500 @ sp needed
- 501 007a 80BD pop {r7, pc}
- 502 .L24:
- 503 .align 2
- 504 .L23:
- 505 007c 00540040 .word 1073763328
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 22
- 506 0080 00580040 .word 1073764352
- 507 0084 00000000 .word .LC0
- 508 .cfi_endproc
- 509 .LFE131:
- 511 .section .text.HAL_I2C_MspInit,"ax",%progbits
- 512 .align 1
- 513 .weak HAL_I2C_MspInit
- 514 .syntax unified
- 515 .thumb
- 516 .thumb_func
- 518 HAL_I2C_MspInit:
- 519 .LFB132:
- 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
- 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
- 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 520 .loc 1 697 1
- 521 .cfi_startproc
- 522 @ args = 0, pretend = 0, frame = 8
- 523 @ frame_needed = 1, uses_anonymous_args = 0
- 524 @ link register save eliminated.
- 525 0000 80B4 push {r7}
- 526 .LCFI10:
- 527 .cfi_def_cfa_offset 4
- 528 .cfi_offset 7, -4
- 529 0002 83B0 sub sp, sp, #12
- 530 .LCFI11:
- 531 .cfi_def_cfa_offset 16
- 532 0004 00AF add r7, sp, #0
- 533 .LCFI12:
- 534 .cfi_def_cfa_register 7
- 535 0006 7860 str r0, [r7, #4]
- 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
- 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 536 .loc 1 704 1
- 537 0008 00BF nop
- 538 000a 0C37 adds r7, r7, #12
- 539 .LCFI13:
- 540 .cfi_def_cfa_offset 4
- 541 000c BD46 mov sp, r7
- 542 .LCFI14:
- 543 .cfi_def_cfa_register 13
- 544 @ sp needed
- 545 000e 5DF8047B ldr r7, [sp], #4
- 546 .LCFI15:
- 547 .cfi_restore 7
- 548 .cfi_def_cfa_offset 0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 23
- 549 0012 7047 bx lr
- 550 .cfi_endproc
- 551 .LFE132:
- 553 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
- 554 .align 1
- 555 .weak HAL_I2C_MspDeInit
- 556 .syntax unified
- 557 .thumb
- 558 .thumb_func
- 560 HAL_I2C_MspDeInit:
- 561 .LFB133:
- 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
- 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
- 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 562 .loc 1 713 1
- 563 .cfi_startproc
- 564 @ args = 0, pretend = 0, frame = 8
- 565 @ frame_needed = 1, uses_anonymous_args = 0
- 566 @ link register save eliminated.
- 567 0000 80B4 push {r7}
- 568 .LCFI16:
- 569 .cfi_def_cfa_offset 4
- 570 .cfi_offset 7, -4
- 571 0002 83B0 sub sp, sp, #12
- 572 .LCFI17:
- 573 .cfi_def_cfa_offset 16
- 574 0004 00AF add r7, sp, #0
- 575 .LCFI18:
- 576 .cfi_def_cfa_register 7
- 577 0006 7860 str r0, [r7, #4]
- 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
- 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 578 .loc 1 720 1
- 579 0008 00BF nop
- 580 000a 0C37 adds r7, r7, #12
- 581 .LCFI19:
- 582 .cfi_def_cfa_offset 4
- 583 000c BD46 mov sp, r7
- 584 .LCFI20:
- 585 .cfi_def_cfa_register 13
- 586 @ sp needed
- 587 000e 5DF8047B ldr r7, [sp], #4
- 588 .LCFI21:
- 589 .cfi_restore 7
- 590 .cfi_def_cfa_offset 0
- 591 0012 7047 bx lr
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 24
- 592 .cfi_endproc
- 593 .LFE133:
- 595 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
- 596 .align 1
- 597 .global HAL_I2C_Master_Transmit
- 598 .syntax unified
- 599 .thumb
- 600 .thumb_func
- 602 HAL_I2C_Master_Transmit:
- 603 .LFB134:
- 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback
- 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback
- 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
- 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.
- 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
- 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
- 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
- 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
- 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
- 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
- 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
- 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
- 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
- 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
- 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
- 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
- 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
- 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
- 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
- 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback)
- 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
- 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
- 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
- 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
- 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
- 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
- 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 25
- 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
- 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
- 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
- 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
- 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
- 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
- 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
- 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
- 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
- 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
- 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
- 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
- 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
- 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
- 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
- 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
- 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
- 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
- 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
- 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
- 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
- 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
- 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
- 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
- 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 26
- 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
- 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
- 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
- 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback
- 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
- 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
- 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.
- 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
- 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
- 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
- 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
- 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
- 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
- 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
- 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
- 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
- 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
- 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
- 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
- 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
- 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
- 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
- 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
- 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
- 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
- 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
- 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 27
- 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
- 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
- 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
- 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
- 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
- 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
- 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
- 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
- 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
- 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
- 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
- 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
- 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
- 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
- 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
- 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
- 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
- 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
- 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
- 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
- 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
- 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
- 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
- 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
- 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 28
- 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
- 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
- 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
- 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
- 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
- 968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
- 969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
- 972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
- 975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
- 977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
- 979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
- 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
- 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 29
- 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
- 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
- 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
- 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
- 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
- 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
- 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
- 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
- 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
- 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
- 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
- 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
- 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions
- 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
- 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
- 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions #####
- 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
- 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
- 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers.
- 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer:
- 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
- 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function
- 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer.
- 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
- 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
- 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 30
- 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
- 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode.
- 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are :
- 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
- 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
- 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
- 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
- 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
- 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
- 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
- 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
- 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
- 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
- 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
- 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
- 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
- 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
- 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
- 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
- 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
- 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
- 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
- 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
- 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
- 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
- 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
- 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
- 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
- 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
- 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
- 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
- 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
- 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
- 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
- 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
- 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
- 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
- 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
- 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
- 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
- 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
- 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
- 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
- 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
- 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
- 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
- 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
- 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 31
- 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
- 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 604 .loc 1 1121 1
- 605 .cfi_startproc
- 606 @ args = 4, pretend = 0, frame = 24
- 607 @ frame_needed = 1, uses_anonymous_args = 0
- 608 0000 80B5 push {r7, lr}
- 609 .LCFI22:
- 610 .cfi_def_cfa_offset 8
- 611 .cfi_offset 7, -8
- 612 .cfi_offset 14, -4
- 613 0002 88B0 sub sp, sp, #32
- 614 .LCFI23:
- 615 .cfi_def_cfa_offset 40
- 616 0004 02AF add r7, sp, #8
- 617 .LCFI24:
- 618 .cfi_def_cfa 7, 32
- 619 0006 F860 str r0, [r7, #12]
- 620 0008 7A60 str r2, [r7, #4]
- 621 000a 1A46 mov r2, r3
- 622 000c 0B46 mov r3, r1 @ movhi
- 623 000e 7B81 strh r3, [r7, #10] @ movhi
- 624 0010 1346 mov r3, r2 @ movhi
- 625 0012 3B81 strh r3, [r7, #8] @ movhi
- 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 626 .loc 1 1125 11
- 627 0014 FB68 ldr r3, [r7, #12]
- 628 0016 93F84130 ldrb r3, [r3, #65]
- 629 001a DBB2 uxtb r3, r3
- 630 .loc 1 1125 6
- 631 001c 202B cmp r3, #32
- 632 001e 40F0FD80 bne .L28
- 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 633 .loc 1 1128 5
- 634 0022 FB68 ldr r3, [r7, #12]
- 635 0024 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 636 0028 012B cmp r3, #1
- 637 002a 01D1 bne .L29
- 638 .loc 1 1128 5 is_stmt 0 discriminator 1
- 639 002c 0223 movs r3, #2
- 640 002e F6E0 b .L30
- 641 .L29:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 32
- 642 .loc 1 1128 5 discriminator 2
- 643 0030 FB68 ldr r3, [r7, #12]
- 644 0032 0122 movs r2, #1
- 645 0034 83F84020 strb r2, [r3, #64]
- 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
- 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 646 .loc 1 1131 17 is_stmt 1 discriminator 2
- 647 0038 FFF7FEFF bl HAL_GetTick
- 648 003c 3861 str r0, [r7, #16]
- 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
- 649 .loc 1 1133 9 discriminator 2
- 650 003e 3B69 ldr r3, [r7, #16]
- 651 0040 0093 str r3, [sp]
- 652 0042 1923 movs r3, #25
- 653 0044 0122 movs r2, #1
- 654 0046 4FF40041 mov r1, #32768
- 655 004a F868 ldr r0, [r7, #12]
- 656 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 657 0050 0346 mov r3, r0
- 658 .loc 1 1133 8 discriminator 2
- 659 0052 002B cmp r3, #0
- 660 0054 01D0 beq .L31
- 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 661 .loc 1 1135 14
- 662 0056 0123 movs r3, #1
- 663 0058 E1E0 b .L30
- 664 .L31:
- 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 665 .loc 1 1138 21
- 666 005a FB68 ldr r3, [r7, #12]
- 667 005c 2122 movs r2, #33
- 668 005e 83F84120 strb r2, [r3, #65]
- 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 669 .loc 1 1139 21
- 670 0062 FB68 ldr r3, [r7, #12]
- 671 0064 1022 movs r2, #16
- 672 0066 83F84220 strb r2, [r3, #66]
- 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 673 .loc 1 1140 21
- 674 006a FB68 ldr r3, [r7, #12]
- 675 006c 0022 movs r2, #0
- 676 006e 5A64 str r2, [r3, #68]
- 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 677 .loc 1 1143 21
- 678 0070 FB68 ldr r3, [r7, #12]
- 679 0072 7A68 ldr r2, [r7, #4]
- 680 0074 5A62 str r2, [r3, #36]
- 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 681 .loc 1 1144 21
- 682 0076 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 33
- 683 0078 3A89 ldrh r2, [r7, #8] @ movhi
- 684 007a 5A85 strh r2, [r3, #42] @ movhi
- 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 685 .loc 1 1145 21
- 686 007c FB68 ldr r3, [r7, #12]
- 687 007e 0022 movs r2, #0
- 688 0080 5A63 str r2, [r3, #52]
- 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 689 .loc 1 1147 13
- 690 0082 FB68 ldr r3, [r7, #12]
- 691 0084 5B8D ldrh r3, [r3, #42] @ movhi
- 692 0086 9BB2 uxth r3, r3
- 693 .loc 1 1147 8
- 694 0088 FF2B cmp r3, #255
- 695 008a 06D9 bls .L32
- 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 696 .loc 1 1149 22
- 697 008c FB68 ldr r3, [r7, #12]
- 698 008e FF22 movs r2, #255
- 699 0090 1A85 strh r2, [r3, #40] @ movhi
- 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 700 .loc 1 1150 16
- 701 0092 4FF08073 mov r3, #16777216
- 702 0096 7B61 str r3, [r7, #20]
- 703 0098 07E0 b .L33
- 704 .L32:
- 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 705 .loc 1 1154 28
- 706 009a FB68 ldr r3, [r7, #12]
- 707 009c 5B8D ldrh r3, [r3, #42] @ movhi
- 708 009e 9AB2 uxth r2, r3
- 709 .loc 1 1154 22
- 710 00a0 FB68 ldr r3, [r7, #12]
- 711 00a2 1A85 strh r2, [r3, #40] @ movhi
- 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
- 712 .loc 1 1155 16
- 713 00a4 4FF00073 mov r3, #33554432
- 714 00a8 7B61 str r3, [r7, #20]
- 715 .L33:
- 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 716 .loc 1 1158 13
- 717 00aa FB68 ldr r3, [r7, #12]
- 718 00ac 1B8D ldrh r3, [r3, #40]
- 719 .loc 1 1158 8
- 720 00ae 002B cmp r3, #0
- 721 00b0 24D0 beq .L34
- 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 34
- 722 .loc 1 1162 35
- 723 00b2 FB68 ldr r3, [r7, #12]
- 724 00b4 5B6A ldr r3, [r3, #36]
- 725 .loc 1 1162 30
- 726 00b6 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 727 .loc 1 1162 11
- 728 00b8 FB68 ldr r3, [r7, #12]
- 729 00ba 1B68 ldr r3, [r3]
- 730 .loc 1 1162 28
- 731 00bc 9A62 str r2, [r3, #40]
- 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 732 .loc 1 1165 11
- 733 00be FB68 ldr r3, [r7, #12]
- 734 00c0 5B6A ldr r3, [r3, #36]
- 735 .loc 1 1165 21
- 736 00c2 5A1C adds r2, r3, #1
- 737 00c4 FB68 ldr r3, [r7, #12]
- 738 00c6 5A62 str r2, [r3, #36]
- 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 739 .loc 1 1167 11
- 740 00c8 FB68 ldr r3, [r7, #12]
- 741 00ca 5B8D ldrh r3, [r3, #42] @ movhi
- 742 00cc 9BB2 uxth r3, r3
- 743 .loc 1 1167 22
- 744 00ce 013B subs r3, r3, #1
- 745 00d0 9AB2 uxth r2, r3
- 746 00d2 FB68 ldr r3, [r7, #12]
- 747 00d4 5A85 strh r2, [r3, #42] @ movhi
- 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 748 .loc 1 1168 11
- 749 00d6 FB68 ldr r3, [r7, #12]
- 750 00d8 1B8D ldrh r3, [r3, #40]
- 751 .loc 1 1168 21
- 752 00da 013B subs r3, r3, #1
- 753 00dc 9AB2 uxth r2, r3
- 754 00de FB68 ldr r3, [r7, #12]
- 755 00e0 1A85 strh r2, [r3, #40] @ movhi
- 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 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 */
- 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
- 756 .loc 1 1172 58
- 757 00e2 FB68 ldr r3, [r7, #12]
- 758 00e4 1B8D ldrh r3, [r3, #40]
- 759 .loc 1 1172 7
- 760 00e6 DBB2 uxtb r3, r3
- 761 00e8 0133 adds r3, r3, #1
- 762 00ea DAB2 uxtb r2, r3
- 763 00ec 7989 ldrh r1, [r7, #10]
- 764 00ee 4E4B ldr r3, .L42
- 765 00f0 0093 str r3, [sp]
- 766 00f2 7B69 ldr r3, [r7, #20]
- 767 00f4 F868 ldr r0, [r7, #12]
- 768 00f6 FFF7FEFF bl I2C_TransferConfig
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 35
- 769 00fa 66E0 b .L36
- 770 .L34:
- 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
- 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 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 */
- 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
- 771 .loc 1 1179 57
- 772 00fc FB68 ldr r3, [r7, #12]
- 773 00fe 1B8D ldrh r3, [r3, #40]
- 774 .loc 1 1179 7
- 775 0100 DAB2 uxtb r2, r3
- 776 0102 7989 ldrh r1, [r7, #10]
- 777 0104 484B ldr r3, .L42
- 778 0106 0093 str r3, [sp]
- 779 0108 7B69 ldr r3, [r7, #20]
- 780 010a F868 ldr r0, [r7, #12]
- 781 010c FFF7FEFF bl I2C_TransferConfig
- 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
- 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
- 782 .loc 1 1183 11
- 783 0110 5BE0 b .L36
- 784 .L40:
- 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 785 .loc 1 1186 11
- 786 0112 3A69 ldr r2, [r7, #16]
- 787 0114 396A ldr r1, [r7, #32]
- 788 0116 F868 ldr r0, [r7, #12]
- 789 0118 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 790 011c 0346 mov r3, r0
- 791 .loc 1 1186 10
- 792 011e 002B cmp r3, #0
- 793 0120 01D0 beq .L37
- 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 794 .loc 1 1188 16
- 795 0122 0123 movs r3, #1
- 796 0124 7BE0 b .L30
- 797 .L37:
- 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 798 .loc 1 1191 35
- 799 0126 FB68 ldr r3, [r7, #12]
- 800 0128 5B6A ldr r3, [r3, #36]
- 801 .loc 1 1191 30
- 802 012a 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 803 .loc 1 1191 11
- 804 012c FB68 ldr r3, [r7, #12]
- 805 012e 1B68 ldr r3, [r3]
- 806 .loc 1 1191 28
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 36
- 807 0130 9A62 str r2, [r3, #40]
- 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 808 .loc 1 1194 11
- 809 0132 FB68 ldr r3, [r7, #12]
- 810 0134 5B6A ldr r3, [r3, #36]
- 811 .loc 1 1194 21
- 812 0136 5A1C adds r2, r3, #1
- 813 0138 FB68 ldr r3, [r7, #12]
- 814 013a 5A62 str r2, [r3, #36]
- 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 815 .loc 1 1196 11
- 816 013c FB68 ldr r3, [r7, #12]
- 817 013e 5B8D ldrh r3, [r3, #42] @ movhi
- 818 0140 9BB2 uxth r3, r3
- 819 .loc 1 1196 22
- 820 0142 013B subs r3, r3, #1
- 821 0144 9AB2 uxth r2, r3
- 822 0146 FB68 ldr r3, [r7, #12]
- 823 0148 5A85 strh r2, [r3, #42] @ movhi
- 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 824 .loc 1 1197 11
- 825 014a FB68 ldr r3, [r7, #12]
- 826 014c 1B8D ldrh r3, [r3, #40]
- 827 .loc 1 1197 21
- 828 014e 013B subs r3, r3, #1
- 829 0150 9AB2 uxth r2, r3
- 830 0152 FB68 ldr r3, [r7, #12]
- 831 0154 1A85 strh r2, [r3, #40] @ movhi
- 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
- 832 .loc 1 1199 16
- 833 0156 FB68 ldr r3, [r7, #12]
- 834 0158 5B8D ldrh r3, [r3, #42] @ movhi
- 835 015a 9BB2 uxth r3, r3
- 836 .loc 1 1199 10
- 837 015c 002B cmp r3, #0
- 838 015e 34D0 beq .L36
- 839 .loc 1 1199 43 discriminator 1
- 840 0160 FB68 ldr r3, [r7, #12]
- 841 0162 1B8D ldrh r3, [r3, #40]
- 842 .loc 1 1199 35 discriminator 1
- 843 0164 002B cmp r3, #0
- 844 0166 30D1 bne .L36
- 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
- 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
- 845 .loc 1 1202 13
- 846 0168 3B69 ldr r3, [r7, #16]
- 847 016a 0093 str r3, [sp]
- 848 016c 3B6A ldr r3, [r7, #32]
- 849 016e 0022 movs r2, #0
- 850 0170 8021 movs r1, #128
- 851 0172 F868 ldr r0, [r7, #12]
- 852 0174 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 37
- 853 0178 0346 mov r3, r0
- 854 .loc 1 1202 12
- 855 017a 002B cmp r3, #0
- 856 017c 01D0 beq .L38
- 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 857 .loc 1 1204 18
- 858 017e 0123 movs r3, #1
- 859 0180 4DE0 b .L30
- 860 .L38:
- 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 861 .loc 1 1207 17
- 862 0182 FB68 ldr r3, [r7, #12]
- 863 0184 5B8D ldrh r3, [r3, #42] @ movhi
- 864 0186 9BB2 uxth r3, r3
- 865 .loc 1 1207 12
- 866 0188 FF2B cmp r3, #255
- 867 018a 0ED9 bls .L39
- 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 868 .loc 1 1209 26
- 869 018c FB68 ldr r3, [r7, #12]
- 870 018e FF22 movs r2, #255
- 871 0190 1A85 strh r2, [r3, #40] @ movhi
- 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
- 872 .loc 1 1210 61
- 873 0192 FB68 ldr r3, [r7, #12]
- 874 0194 1B8D ldrh r3, [r3, #40]
- 875 .loc 1 1210 11
- 876 0196 DAB2 uxtb r2, r3
- 877 0198 7989 ldrh r1, [r7, #10]
- 878 019a 0023 movs r3, #0
- 879 019c 0093 str r3, [sp]
- 880 019e 4FF08073 mov r3, #16777216
- 881 01a2 F868 ldr r0, [r7, #12]
- 882 01a4 FFF7FEFF bl I2C_TransferConfig
- 883 01a8 0FE0 b .L36
- 884 .L39:
- 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 885 .loc 1 1215 32
- 886 01aa FB68 ldr r3, [r7, #12]
- 887 01ac 5B8D ldrh r3, [r3, #42] @ movhi
- 888 01ae 9AB2 uxth r2, r3
- 889 .loc 1 1215 26
- 890 01b0 FB68 ldr r3, [r7, #12]
- 891 01b2 1A85 strh r2, [r3, #40] @ movhi
- 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 892 .loc 1 1216 61
- 893 01b4 FB68 ldr r3, [r7, #12]
- 894 01b6 1B8D ldrh r3, [r3, #40]
- 895 .loc 1 1216 11
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 38
- 896 01b8 DAB2 uxtb r2, r3
- 897 01ba 7989 ldrh r1, [r7, #10]
- 898 01bc 0023 movs r3, #0
- 899 01be 0093 str r3, [sp]
- 900 01c0 4FF00073 mov r3, #33554432
- 901 01c4 F868 ldr r0, [r7, #12]
- 902 01c6 FFF7FEFF bl I2C_TransferConfig
- 903 .L36:
- 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 904 .loc 1 1183 16
- 905 01ca FB68 ldr r3, [r7, #12]
- 906 01cc 5B8D ldrh r3, [r3, #42] @ movhi
- 907 01ce 9BB2 uxth r3, r3
- 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 908 .loc 1 1183 11
- 909 01d0 002B cmp r3, #0
- 910 01d2 9ED1 bne .L40
- 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
- 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
- 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 911 .loc 1 1224 9
- 912 01d4 3A69 ldr r2, [r7, #16]
- 913 01d6 396A ldr r1, [r7, #32]
- 914 01d8 F868 ldr r0, [r7, #12]
- 915 01da FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
- 916 01de 0346 mov r3, r0
- 917 .loc 1 1224 8
- 918 01e0 002B cmp r3, #0
- 919 01e2 01D0 beq .L41
- 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 920 .loc 1 1226 14
- 921 01e4 0123 movs r3, #1
- 922 01e6 1AE0 b .L30
- 923 .L41:
- 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 924 .loc 1 1230 5
- 925 01e8 FB68 ldr r3, [r7, #12]
- 926 01ea 1B68 ldr r3, [r3]
- 927 01ec 2022 movs r2, #32
- 928 01ee DA61 str r2, [r3, #28]
- 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 929 .loc 1 1233 5
- 930 01f0 FB68 ldr r3, [r7, #12]
- 931 01f2 1B68 ldr r3, [r3]
- 932 01f4 5968 ldr r1, [r3, #4]
- 933 01f6 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 39
- 934 01f8 1A68 ldr r2, [r3]
- 935 01fa 0C4B ldr r3, .L42+4
- 936 01fc 0B40 ands r3, r3, r1
- 937 01fe 5360 str r3, [r2, #4]
- 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 938 .loc 1 1235 17
- 939 0200 FB68 ldr r3, [r7, #12]
- 940 0202 2022 movs r2, #32
- 941 0204 83F84120 strb r2, [r3, #65]
- 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 942 .loc 1 1236 17
- 943 0208 FB68 ldr r3, [r7, #12]
- 944 020a 0022 movs r2, #0
- 945 020c 83F84220 strb r2, [r3, #66]
- 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 946 .loc 1 1239 5
- 947 0210 FB68 ldr r3, [r7, #12]
- 948 0212 0022 movs r2, #0
- 949 0214 83F84020 strb r2, [r3, #64]
- 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 950 .loc 1 1241 12
- 951 0218 0023 movs r3, #0
- 952 021a 00E0 b .L30
- 953 .L28:
- 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 954 .loc 1 1245 12
- 955 021c 0223 movs r3, #2
- 956 .L30:
- 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 957 .loc 1 1247 1
- 958 021e 1846 mov r0, r3
- 959 0220 1837 adds r7, r7, #24
- 960 .LCFI25:
- 961 .cfi_def_cfa_offset 8
- 962 0222 BD46 mov sp, r7
- 963 .LCFI26:
- 964 .cfi_def_cfa_register 13
- 965 @ sp needed
- 966 0224 80BD pop {r7, pc}
- 967 .L43:
- 968 0226 00BF .align 2
- 969 .L42:
- 970 0228 00200080 .word -2147475456
- 971 022c 00E800FE .word -33495040
- 972 .cfi_endproc
- 973 .LFE134:
- 975 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
- 976 .align 1
- 977 .global HAL_I2C_Master_Receive
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 40
- 978 .syntax unified
- 979 .thumb
- 980 .thumb_func
- 982 HAL_I2C_Master_Receive:
- 983 .LFB135:
- 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
- 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
- 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 984 .loc 1 1262 1
- 985 .cfi_startproc
- 986 @ args = 4, pretend = 0, frame = 24
- 987 @ frame_needed = 1, uses_anonymous_args = 0
- 988 0000 80B5 push {r7, lr}
- 989 .LCFI27:
- 990 .cfi_def_cfa_offset 8
- 991 .cfi_offset 7, -8
- 992 .cfi_offset 14, -4
- 993 0002 88B0 sub sp, sp, #32
- 994 .LCFI28:
- 995 .cfi_def_cfa_offset 40
- 996 0004 02AF add r7, sp, #8
- 997 .LCFI29:
- 998 .cfi_def_cfa 7, 32
- 999 0006 F860 str r0, [r7, #12]
- 1000 0008 7A60 str r2, [r7, #4]
- 1001 000a 1A46 mov r2, r3
- 1002 000c 0B46 mov r3, r1 @ movhi
- 1003 000e 7B81 strh r3, [r7, #10] @ movhi
- 1004 0010 1346 mov r3, r2 @ movhi
- 1005 0012 3B81 strh r3, [r7, #8] @ movhi
- 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 1006 .loc 1 1265 11
- 1007 0014 FB68 ldr r3, [r7, #12]
- 1008 0016 93F84130 ldrb r3, [r3, #65]
- 1009 001a DBB2 uxtb r3, r3
- 1010 .loc 1 1265 6
- 1011 001c 202B cmp r3, #32
- 1012 001e 40F0DB80 bne .L45
- 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 1013 .loc 1 1268 5
- 1014 0022 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 41
- 1015 0024 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 1016 0028 012B cmp r3, #1
- 1017 002a 01D1 bne .L46
- 1018 .loc 1 1268 5 is_stmt 0 discriminator 1
- 1019 002c 0223 movs r3, #2
- 1020 002e D4E0 b .L47
- 1021 .L46:
- 1022 .loc 1 1268 5 discriminator 2
- 1023 0030 FB68 ldr r3, [r7, #12]
- 1024 0032 0122 movs r2, #1
- 1025 0034 83F84020 strb r2, [r3, #64]
- 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
- 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 1026 .loc 1 1271 17 is_stmt 1 discriminator 2
- 1027 0038 FFF7FEFF bl HAL_GetTick
- 1028 003c 7861 str r0, [r7, #20]
- 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
- 1029 .loc 1 1273 9 discriminator 2
- 1030 003e 7B69 ldr r3, [r7, #20]
- 1031 0040 0093 str r3, [sp]
- 1032 0042 1923 movs r3, #25
- 1033 0044 0122 movs r2, #1
- 1034 0046 4FF40041 mov r1, #32768
- 1035 004a F868 ldr r0, [r7, #12]
- 1036 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1037 0050 0346 mov r3, r0
- 1038 .loc 1 1273 8 discriminator 2
- 1039 0052 002B cmp r3, #0
- 1040 0054 01D0 beq .L48
- 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1041 .loc 1 1275 14
- 1042 0056 0123 movs r3, #1
- 1043 0058 BFE0 b .L47
- 1044 .L48:
- 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 1045 .loc 1 1278 21
- 1046 005a FB68 ldr r3, [r7, #12]
- 1047 005c 2222 movs r2, #34
- 1048 005e 83F84120 strb r2, [r3, #65]
- 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 1049 .loc 1 1279 21
- 1050 0062 FB68 ldr r3, [r7, #12]
- 1051 0064 1022 movs r2, #16
- 1052 0066 83F84220 strb r2, [r3, #66]
- 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 1053 .loc 1 1280 21
- 1054 006a FB68 ldr r3, [r7, #12]
- 1055 006c 0022 movs r2, #0
- 1056 006e 5A64 str r2, [r3, #68]
- 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 42
- 1057 .loc 1 1283 21
- 1058 0070 FB68 ldr r3, [r7, #12]
- 1059 0072 7A68 ldr r2, [r7, #4]
- 1060 0074 5A62 str r2, [r3, #36]
- 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 1061 .loc 1 1284 21
- 1062 0076 FB68 ldr r3, [r7, #12]
- 1063 0078 3A89 ldrh r2, [r7, #8] @ movhi
- 1064 007a 5A85 strh r2, [r3, #42] @ movhi
- 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 1065 .loc 1 1285 21
- 1066 007c FB68 ldr r3, [r7, #12]
- 1067 007e 0022 movs r2, #0
- 1068 0080 5A63 str r2, [r3, #52]
- 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 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 */
- 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 1069 .loc 1 1289 13
- 1070 0082 FB68 ldr r3, [r7, #12]
- 1071 0084 5B8D ldrh r3, [r3, #42] @ movhi
- 1072 0086 9BB2 uxth r3, r3
- 1073 .loc 1 1289 8
- 1074 0088 FF2B cmp r3, #255
- 1075 008a 0ED9 bls .L49
- 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 1076 .loc 1 1291 22
- 1077 008c FB68 ldr r3, [r7, #12]
- 1078 008e 0122 movs r2, #1
- 1079 0090 1A85 strh r2, [r3, #40] @ movhi
- 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
- 1080 .loc 1 1292 57
- 1081 0092 FB68 ldr r3, [r7, #12]
- 1082 0094 1B8D ldrh r3, [r3, #40]
- 1083 .loc 1 1292 7
- 1084 0096 DAB2 uxtb r2, r3
- 1085 0098 7989 ldrh r1, [r7, #10]
- 1086 009a 524B ldr r3, .L57
- 1087 009c 0093 str r3, [sp]
- 1088 009e 4FF08073 mov r3, #16777216
- 1089 00a2 F868 ldr r0, [r7, #12]
- 1090 00a4 FFF7FEFF bl I2C_TransferConfig
- 1091 00a8 6DE0 b .L51
- 1092 .L49:
- 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
- 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 1093 .loc 1 1297 28
- 1094 00aa FB68 ldr r3, [r7, #12]
- 1095 00ac 5B8D ldrh r3, [r3, #42] @ movhi
- 1096 00ae 9AB2 uxth r2, r3
- 1097 .loc 1 1297 22
- 1098 00b0 FB68 ldr r3, [r7, #12]
- 1099 00b2 1A85 strh r2, [r3, #40] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 43
- 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 1100 .loc 1 1298 57
- 1101 00b4 FB68 ldr r3, [r7, #12]
- 1102 00b6 1B8D ldrh r3, [r3, #40]
- 1103 .loc 1 1298 7
- 1104 00b8 DAB2 uxtb r2, r3
- 1105 00ba 7989 ldrh r1, [r7, #10]
- 1106 00bc 494B ldr r3, .L57
- 1107 00be 0093 str r3, [sp]
- 1108 00c0 4FF00073 mov r3, #33554432
- 1109 00c4 F868 ldr r0, [r7, #12]
- 1110 00c6 FFF7FEFF bl I2C_TransferConfig
- 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
- 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
- 1111 .loc 1 1302 11
- 1112 00ca 5CE0 b .L51
- 1113 .L55:
- 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
- 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 1114 .loc 1 1305 11
- 1115 00cc 7A69 ldr r2, [r7, #20]
- 1116 00ce 396A ldr r1, [r7, #32]
- 1117 00d0 F868 ldr r0, [r7, #12]
- 1118 00d2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
- 1119 00d6 0346 mov r3, r0
- 1120 .loc 1 1305 10
- 1121 00d8 002B cmp r3, #0
- 1122 00da 01D0 beq .L52
- 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1123 .loc 1 1307 16
- 1124 00dc 0123 movs r3, #1
- 1125 00de 7CE0 b .L47
- 1126 .L52:
- 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 1127 .loc 1 1311 38
- 1128 00e0 FB68 ldr r3, [r7, #12]
- 1129 00e2 1B68 ldr r3, [r3]
- 1130 .loc 1 1311 48
- 1131 00e4 5A6A ldr r2, [r3, #36]
- 1132 .loc 1 1311 12
- 1133 00e6 FB68 ldr r3, [r7, #12]
- 1134 00e8 5B6A ldr r3, [r3, #36]
- 1135 .loc 1 1311 25
- 1136 00ea D2B2 uxtb r2, r2
- 1137 .loc 1 1311 23
- 1138 00ec 1A70 strb r2, [r3]
- 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 1139 .loc 1 1314 11
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 44
- 1140 00ee FB68 ldr r3, [r7, #12]
- 1141 00f0 5B6A ldr r3, [r3, #36]
- 1142 .loc 1 1314 21
- 1143 00f2 5A1C adds r2, r3, #1
- 1144 00f4 FB68 ldr r3, [r7, #12]
- 1145 00f6 5A62 str r2, [r3, #36]
- 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 1146 .loc 1 1316 11
- 1147 00f8 FB68 ldr r3, [r7, #12]
- 1148 00fa 1B8D ldrh r3, [r3, #40]
- 1149 .loc 1 1316 21
- 1150 00fc 013B subs r3, r3, #1
- 1151 00fe 9AB2 uxth r2, r3
- 1152 0100 FB68 ldr r3, [r7, #12]
- 1153 0102 1A85 strh r2, [r3, #40] @ movhi
- 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 1154 .loc 1 1317 11
- 1155 0104 FB68 ldr r3, [r7, #12]
- 1156 0106 5B8D ldrh r3, [r3, #42] @ movhi
- 1157 0108 9BB2 uxth r3, r3
- 1158 .loc 1 1317 22
- 1159 010a 013B subs r3, r3, #1
- 1160 010c 9AB2 uxth r2, r3
- 1161 010e FB68 ldr r3, [r7, #12]
- 1162 0110 5A85 strh r2, [r3, #42] @ movhi
- 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
- 1163 .loc 1 1319 16
- 1164 0112 FB68 ldr r3, [r7, #12]
- 1165 0114 5B8D ldrh r3, [r3, #42] @ movhi
- 1166 0116 9BB2 uxth r3, r3
- 1167 .loc 1 1319 10
- 1168 0118 002B cmp r3, #0
- 1169 011a 34D0 beq .L51
- 1170 .loc 1 1319 43 discriminator 1
- 1171 011c FB68 ldr r3, [r7, #12]
- 1172 011e 1B8D ldrh r3, [r3, #40]
- 1173 .loc 1 1319 35 discriminator 1
- 1174 0120 002B cmp r3, #0
- 1175 0122 30D1 bne .L51
- 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
- 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
- 1176 .loc 1 1322 13
- 1177 0124 7B69 ldr r3, [r7, #20]
- 1178 0126 0093 str r3, [sp]
- 1179 0128 3B6A ldr r3, [r7, #32]
- 1180 012a 0022 movs r2, #0
- 1181 012c 8021 movs r1, #128
- 1182 012e F868 ldr r0, [r7, #12]
- 1183 0130 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1184 0134 0346 mov r3, r0
- 1185 .loc 1 1322 12
- 1186 0136 002B cmp r3, #0
- 1187 0138 01D0 beq .L53
- 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 45
- 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1188 .loc 1 1324 18
- 1189 013a 0123 movs r3, #1
- 1190 013c 4DE0 b .L47
- 1191 .L53:
- 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 1192 .loc 1 1327 17
- 1193 013e FB68 ldr r3, [r7, #12]
- 1194 0140 5B8D ldrh r3, [r3, #42] @ movhi
- 1195 0142 9BB2 uxth r3, r3
- 1196 .loc 1 1327 12
- 1197 0144 FF2B cmp r3, #255
- 1198 0146 0ED9 bls .L54
- 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 1199 .loc 1 1329 26
- 1200 0148 FB68 ldr r3, [r7, #12]
- 1201 014a FF22 movs r2, #255
- 1202 014c 1A85 strh r2, [r3, #40] @ movhi
- 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
- 1203 .loc 1 1330 61
- 1204 014e FB68 ldr r3, [r7, #12]
- 1205 0150 1B8D ldrh r3, [r3, #40]
- 1206 .loc 1 1330 11
- 1207 0152 DAB2 uxtb r2, r3
- 1208 0154 7989 ldrh r1, [r7, #10]
- 1209 0156 0023 movs r3, #0
- 1210 0158 0093 str r3, [sp]
- 1211 015a 4FF08073 mov r3, #16777216
- 1212 015e F868 ldr r0, [r7, #12]
- 1213 0160 FFF7FEFF bl I2C_TransferConfig
- 1214 0164 0FE0 b .L51
- 1215 .L54:
- 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 1216 .loc 1 1335 32
- 1217 0166 FB68 ldr r3, [r7, #12]
- 1218 0168 5B8D ldrh r3, [r3, #42] @ movhi
- 1219 016a 9AB2 uxth r2, r3
- 1220 .loc 1 1335 26
- 1221 016c FB68 ldr r3, [r7, #12]
- 1222 016e 1A85 strh r2, [r3, #40] @ movhi
- 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 1223 .loc 1 1336 61
- 1224 0170 FB68 ldr r3, [r7, #12]
- 1225 0172 1B8D ldrh r3, [r3, #40]
- 1226 .loc 1 1336 11
- 1227 0174 DAB2 uxtb r2, r3
- 1228 0176 7989 ldrh r1, [r7, #10]
- 1229 0178 0023 movs r3, #0
- 1230 017a 0093 str r3, [sp]
- 1231 017c 4FF00073 mov r3, #33554432
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 46
- 1232 0180 F868 ldr r0, [r7, #12]
- 1233 0182 FFF7FEFF bl I2C_TransferConfig
- 1234 .L51:
- 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1235 .loc 1 1302 16
- 1236 0186 FB68 ldr r3, [r7, #12]
- 1237 0188 5B8D ldrh r3, [r3, #42] @ movhi
- 1238 018a 9BB2 uxth r3, r3
- 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1239 .loc 1 1302 11
- 1240 018c 002B cmp r3, #0
- 1241 018e 9DD1 bne .L55
- 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
- 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
- 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 1242 .loc 1 1344 9
- 1243 0190 7A69 ldr r2, [r7, #20]
- 1244 0192 396A ldr r1, [r7, #32]
- 1245 0194 F868 ldr r0, [r7, #12]
- 1246 0196 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
- 1247 019a 0346 mov r3, r0
- 1248 .loc 1 1344 8
- 1249 019c 002B cmp r3, #0
- 1250 019e 01D0 beq .L56
- 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1251 .loc 1 1346 14
- 1252 01a0 0123 movs r3, #1
- 1253 01a2 1AE0 b .L47
- 1254 .L56:
- 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 1255 .loc 1 1350 5
- 1256 01a4 FB68 ldr r3, [r7, #12]
- 1257 01a6 1B68 ldr r3, [r3]
- 1258 01a8 2022 movs r2, #32
- 1259 01aa DA61 str r2, [r3, #28]
- 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 1260 .loc 1 1353 5
- 1261 01ac FB68 ldr r3, [r7, #12]
- 1262 01ae 1B68 ldr r3, [r3]
- 1263 01b0 5968 ldr r1, [r3, #4]
- 1264 01b2 FB68 ldr r3, [r7, #12]
- 1265 01b4 1A68 ldr r2, [r3]
- 1266 01b6 0C4B ldr r3, .L57+4
- 1267 01b8 0B40 ands r3, r3, r1
- 1268 01ba 5360 str r3, [r2, #4]
- 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 47
- 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 1269 .loc 1 1355 17
- 1270 01bc FB68 ldr r3, [r7, #12]
- 1271 01be 2022 movs r2, #32
- 1272 01c0 83F84120 strb r2, [r3, #65]
- 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 1273 .loc 1 1356 17
- 1274 01c4 FB68 ldr r3, [r7, #12]
- 1275 01c6 0022 movs r2, #0
- 1276 01c8 83F84220 strb r2, [r3, #66]
- 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 1277 .loc 1 1359 5
- 1278 01cc FB68 ldr r3, [r7, #12]
- 1279 01ce 0022 movs r2, #0
- 1280 01d0 83F84020 strb r2, [r3, #64]
- 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 1281 .loc 1 1361 12
- 1282 01d4 0023 movs r3, #0
- 1283 01d6 00E0 b .L47
- 1284 .L45:
- 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 1285 .loc 1 1365 12
- 1286 01d8 0223 movs r3, #2
- 1287 .L47:
- 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1288 .loc 1 1367 1
- 1289 01da 1846 mov r0, r3
- 1290 01dc 1837 adds r7, r7, #24
- 1291 .LCFI30:
- 1292 .cfi_def_cfa_offset 8
- 1293 01de BD46 mov sp, r7
- 1294 .LCFI31:
- 1295 .cfi_def_cfa_register 13
- 1296 @ sp needed
- 1297 01e0 80BD pop {r7, pc}
- 1298 .L58:
- 1299 01e2 00BF .align 2
- 1300 .L57:
- 1301 01e4 00240080 .word -2147474432
- 1302 01e8 00E800FE .word -33495040
- 1303 .cfi_endproc
- 1304 .LFE135:
- 1306 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
- 1307 .align 1
- 1308 .global HAL_I2C_Slave_Transmit
- 1309 .syntax unified
- 1310 .thumb
- 1311 .thumb_func
- 1313 HAL_I2C_Slave_Transmit:
- 1314 .LFB136:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 48
- 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
- 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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,
- 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
- 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1315 .loc 1 1380 1
- 1316 .cfi_startproc
- 1317 @ args = 0, pretend = 0, frame = 24
- 1318 @ frame_needed = 1, uses_anonymous_args = 0
- 1319 0000 80B5 push {r7, lr}
- 1320 .LCFI32:
- 1321 .cfi_def_cfa_offset 8
- 1322 .cfi_offset 7, -8
- 1323 .cfi_offset 14, -4
- 1324 0002 88B0 sub sp, sp, #32
- 1325 .LCFI33:
- 1326 .cfi_def_cfa_offset 40
- 1327 0004 02AF add r7, sp, #8
- 1328 .LCFI34:
- 1329 .cfi_def_cfa 7, 32
- 1330 0006 F860 str r0, [r7, #12]
- 1331 0008 B960 str r1, [r7, #8]
- 1332 000a 3B60 str r3, [r7]
- 1333 000c 1346 mov r3, r2 @ movhi
- 1334 000e FB80 strh r3, [r7, #6] @ movhi
- 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t tmpXferCount;
- 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef error;
- 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 1335 .loc 1 1385 11
- 1336 0010 FB68 ldr r3, [r7, #12]
- 1337 0012 93F84130 ldrb r3, [r3, #65]
- 1338 0016 DBB2 uxtb r3, r3
- 1339 .loc 1 1385 6
- 1340 0018 202B cmp r3, #32
- 1341 001a 40F03981 bne .L60
- 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 1342 .loc 1 1387 8
- 1343 001e BB68 ldr r3, [r7, #8]
- 1344 0020 002B cmp r3, #0
- 1345 0022 02D0 beq .L61
- 1346 .loc 1 1387 25 discriminator 1
- 1347 0024 FB88 ldrh r3, [r7, #6]
- 1348 0026 002B cmp r3, #0
- 1349 0028 05D1 bne .L62
- 1350 .L61:
- 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 49
- 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 1351 .loc 1 1389 23
- 1352 002a FB68 ldr r3, [r7, #12]
- 1353 002c 4FF40072 mov r2, #512
- 1354 0030 5A64 str r2, [r3, #68]
- 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1355 .loc 1 1390 15
- 1356 0032 0123 movs r3, #1
- 1357 0034 2DE1 b .L63
- 1358 .L62:
- 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 1359 .loc 1 1393 5
- 1360 0036 FB68 ldr r3, [r7, #12]
- 1361 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 1362 003c 012B cmp r3, #1
- 1363 003e 01D1 bne .L64
- 1364 .loc 1 1393 5 is_stmt 0 discriminator 1
- 1365 0040 0223 movs r3, #2
- 1366 0042 26E1 b .L63
- 1367 .L64:
- 1368 .loc 1 1393 5 discriminator 2
- 1369 0044 FB68 ldr r3, [r7, #12]
- 1370 0046 0122 movs r2, #1
- 1371 0048 83F84020 strb r2, [r3, #64]
- 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
- 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 1372 .loc 1 1396 17 is_stmt 1 discriminator 2
- 1373 004c FFF7FEFF bl HAL_GetTick
- 1374 0050 7861 str r0, [r7, #20]
- 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 1375 .loc 1 1398 21 discriminator 2
- 1376 0052 FB68 ldr r3, [r7, #12]
- 1377 0054 2122 movs r2, #33
- 1378 0056 83F84120 strb r2, [r3, #65]
- 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 1379 .loc 1 1399 21 discriminator 2
- 1380 005a FB68 ldr r3, [r7, #12]
- 1381 005c 2022 movs r2, #32
- 1382 005e 83F84220 strb r2, [r3, #66]
- 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 1383 .loc 1 1400 21 discriminator 2
- 1384 0062 FB68 ldr r3, [r7, #12]
- 1385 0064 0022 movs r2, #0
- 1386 0066 5A64 str r2, [r3, #68]
- 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 1387 .loc 1 1403 21 discriminator 2
- 1388 0068 FB68 ldr r3, [r7, #12]
- 1389 006a BA68 ldr r2, [r7, #8]
- 1390 006c 5A62 str r2, [r3, #36]
- 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 1391 .loc 1 1404 21 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 50
- 1392 006e FB68 ldr r3, [r7, #12]
- 1393 0070 FA88 ldrh r2, [r7, #6] @ movhi
- 1394 0072 5A85 strh r2, [r3, #42] @ movhi
- 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 1395 .loc 1 1405 21 discriminator 2
- 1396 0074 FB68 ldr r3, [r7, #12]
- 1397 0076 0022 movs r2, #0
- 1398 0078 5A63 str r2, [r3, #52]
- 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 1399 .loc 1 1408 9 discriminator 2
- 1400 007a FB68 ldr r3, [r7, #12]
- 1401 007c 1B68 ldr r3, [r3]
- 1402 .loc 1 1408 25 discriminator 2
- 1403 007e 5A68 ldr r2, [r3, #4]
- 1404 .loc 1 1408 9 discriminator 2
- 1405 0080 FB68 ldr r3, [r7, #12]
- 1406 0082 1B68 ldr r3, [r3]
- 1407 .loc 1 1408 25 discriminator 2
- 1408 0084 22F40042 bic r2, r2, #32768
- 1409 0088 5A60 str r2, [r3, #4]
- 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
- 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
- 1410 .loc 1 1411 19 discriminator 2
- 1411 008a FB68 ldr r3, [r7, #12]
- 1412 008c 1B6A ldr r3, [r3, #32]
- 1413 .loc 1 1411 8 discriminator 2
- 1414 008e B3F5003F cmp r3, #131072
- 1415 0092 11D1 bne .L65
- 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 1416 .loc 1 1415 35
- 1417 0094 FB68 ldr r3, [r7, #12]
- 1418 0096 5B6A ldr r3, [r3, #36]
- 1419 .loc 1 1415 30
- 1420 0098 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 1421 .loc 1 1415 11
- 1422 009a FB68 ldr r3, [r7, #12]
- 1423 009c 1B68 ldr r3, [r3]
- 1424 .loc 1 1415 28
- 1425 009e 9A62 str r2, [r3, #40]
- 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 1426 .loc 1 1418 11
- 1427 00a0 FB68 ldr r3, [r7, #12]
- 1428 00a2 5B6A ldr r3, [r3, #36]
- 1429 .loc 1 1418 21
- 1430 00a4 5A1C adds r2, r3, #1
- 1431 00a6 FB68 ldr r3, [r7, #12]
- 1432 00a8 5A62 str r2, [r3, #36]
- 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 51
- 1433 .loc 1 1420 11
- 1434 00aa FB68 ldr r3, [r7, #12]
- 1435 00ac 5B8D ldrh r3, [r3, #42] @ movhi
- 1436 00ae 9BB2 uxth r3, r3
- 1437 .loc 1 1420 22
- 1438 00b0 013B subs r3, r3, #1
- 1439 00b2 9AB2 uxth r2, r3
- 1440 00b4 FB68 ldr r3, [r7, #12]
- 1441 00b6 5A85 strh r2, [r3, #42] @ movhi
- 1442 .L65:
- 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
- 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
- 1443 .loc 1 1424 9
- 1444 00b8 7B69 ldr r3, [r7, #20]
- 1445 00ba 0093 str r3, [sp]
- 1446 00bc 3B68 ldr r3, [r7]
- 1447 00be 0022 movs r2, #0
- 1448 00c0 0821 movs r1, #8
- 1449 00c2 F868 ldr r0, [r7, #12]
- 1450 00c4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1451 00c8 0346 mov r3, r0
- 1452 .loc 1 1424 8
- 1453 00ca 002B cmp r3, #0
- 1454 00cc 0CD0 beq .L66
- 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1455 .loc 1 1427 11
- 1456 00ce FB68 ldr r3, [r7, #12]
- 1457 00d0 1B68 ldr r3, [r3]
- 1458 .loc 1 1427 27
- 1459 00d2 5A68 ldr r2, [r3, #4]
- 1460 .loc 1 1427 11
- 1461 00d4 FB68 ldr r3, [r7, #12]
- 1462 00d6 1B68 ldr r3, [r3]
- 1463 .loc 1 1427 27
- 1464 00d8 42F40042 orr r2, r2, #32768
- 1465 00dc 5A60 str r2, [r3, #4]
- 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 1466 .loc 1 1430 7
- 1467 00de F868 ldr r0, [r7, #12]
- 1468 00e0 FFF7FEFF bl I2C_Flush_TXDR
- 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1469 .loc 1 1432 14
- 1470 00e4 0123 movs r3, #1
- 1471 00e6 D4E0 b .L63
- 1472 .L66:
- 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
- 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 1473 .loc 1 1436 5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 52
- 1474 00e8 FB68 ldr r3, [r7, #12]
- 1475 00ea 1B68 ldr r3, [r3]
- 1476 00ec 0822 movs r2, #8
- 1477 00ee DA61 str r2, [r3, #28]
- 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
- 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
- 1478 .loc 1 1439 19
- 1479 00f0 FB68 ldr r3, [r7, #12]
- 1480 00f2 DB68 ldr r3, [r3, #12]
- 1481 .loc 1 1439 8
- 1482 00f4 022B cmp r3, #2
- 1483 00f6 1BD1 bne .L67
- 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
- 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
- 1484 .loc 1 1442 11
- 1485 00f8 7B69 ldr r3, [r7, #20]
- 1486 00fa 0093 str r3, [sp]
- 1487 00fc 3B68 ldr r3, [r7]
- 1488 00fe 0022 movs r2, #0
- 1489 0100 0821 movs r1, #8
- 1490 0102 F868 ldr r0, [r7, #12]
- 1491 0104 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1492 0108 0346 mov r3, r0
- 1493 .loc 1 1442 10
- 1494 010a 002B cmp r3, #0
- 1495 010c 0CD0 beq .L68
- 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1496 .loc 1 1445 13
- 1497 010e FB68 ldr r3, [r7, #12]
- 1498 0110 1B68 ldr r3, [r3]
- 1499 .loc 1 1445 29
- 1500 0112 5A68 ldr r2, [r3, #4]
- 1501 .loc 1 1445 13
- 1502 0114 FB68 ldr r3, [r7, #12]
- 1503 0116 1B68 ldr r3, [r3]
- 1504 .loc 1 1445 29
- 1505 0118 42F40042 orr r2, r2, #32768
- 1506 011c 5A60 str r2, [r3, #4]
- 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 1507 .loc 1 1448 9
- 1508 011e F868 ldr r0, [r7, #12]
- 1509 0120 FFF7FEFF bl I2C_Flush_TXDR
- 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1510 .loc 1 1450 16
- 1511 0124 0123 movs r3, #1
- 1512 0126 B4E0 b .L63
- 1513 .L68:
- 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 53
- 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 1514 .loc 1 1454 7
- 1515 0128 FB68 ldr r3, [r7, #12]
- 1516 012a 1B68 ldr r3, [r3]
- 1517 012c 0822 movs r2, #8
- 1518 012e DA61 str r2, [r3, #28]
- 1519 .L67:
- 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
- 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
- 1520 .loc 1 1458 9
- 1521 0130 7B69 ldr r3, [r7, #20]
- 1522 0132 0093 str r3, [sp]
- 1523 0134 3B68 ldr r3, [r7]
- 1524 0136 0022 movs r2, #0
- 1525 0138 4FF48031 mov r1, #65536
- 1526 013c F868 ldr r0, [r7, #12]
- 1527 013e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1528 0142 0346 mov r3, r0
- 1529 .loc 1 1458 8
- 1530 0144 002B cmp r3, #0
- 1531 0146 30D0 beq .L70
- 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1532 .loc 1 1461 11
- 1533 0148 FB68 ldr r3, [r7, #12]
- 1534 014a 1B68 ldr r3, [r3]
- 1535 .loc 1 1461 27
- 1536 014c 5A68 ldr r2, [r3, #4]
- 1537 .loc 1 1461 11
- 1538 014e FB68 ldr r3, [r7, #12]
- 1539 0150 1B68 ldr r3, [r3]
- 1540 .loc 1 1461 27
- 1541 0152 42F40042 orr r2, r2, #32768
- 1542 0156 5A60 str r2, [r3, #4]
- 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 1543 .loc 1 1464 7
- 1544 0158 F868 ldr r0, [r7, #12]
- 1545 015a FFF7FEFF bl I2C_Flush_TXDR
- 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1546 .loc 1 1466 14
- 1547 015e 0123 movs r3, #1
- 1548 0160 97E0 b .L63
- 1549 .L72:
- 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
- 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 1550 .loc 1 1472 11
- 1551 0162 7A69 ldr r2, [r7, #20]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 54
- 1552 0164 3968 ldr r1, [r7]
- 1553 0166 F868 ldr r0, [r7, #12]
- 1554 0168 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 1555 016c 0346 mov r3, r0
- 1556 .loc 1 1472 10
- 1557 016e 002B cmp r3, #0
- 1558 0170 09D0 beq .L71
- 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1559 .loc 1 1475 13
- 1560 0172 FB68 ldr r3, [r7, #12]
- 1561 0174 1B68 ldr r3, [r3]
- 1562 .loc 1 1475 29
- 1563 0176 5A68 ldr r2, [r3, #4]
- 1564 .loc 1 1475 13
- 1565 0178 FB68 ldr r3, [r7, #12]
- 1566 017a 1B68 ldr r3, [r3]
- 1567 .loc 1 1475 29
- 1568 017c 42F40042 orr r2, r2, #32768
- 1569 0180 5A60 str r2, [r3, #4]
- 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1570 .loc 1 1476 16
- 1571 0182 0123 movs r3, #1
- 1572 0184 85E0 b .L63
- 1573 .L71:
- 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 1574 .loc 1 1480 35
- 1575 0186 FB68 ldr r3, [r7, #12]
- 1576 0188 5B6A ldr r3, [r3, #36]
- 1577 .loc 1 1480 30
- 1578 018a 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 1579 .loc 1 1480 11
- 1580 018c FB68 ldr r3, [r7, #12]
- 1581 018e 1B68 ldr r3, [r3]
- 1582 .loc 1 1480 28
- 1583 0190 9A62 str r2, [r3, #40]
- 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 1584 .loc 1 1483 11
- 1585 0192 FB68 ldr r3, [r7, #12]
- 1586 0194 5B6A ldr r3, [r3, #36]
- 1587 .loc 1 1483 21
- 1588 0196 5A1C adds r2, r3, #1
- 1589 0198 FB68 ldr r3, [r7, #12]
- 1590 019a 5A62 str r2, [r3, #36]
- 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 1591 .loc 1 1485 11
- 1592 019c FB68 ldr r3, [r7, #12]
- 1593 019e 5B8D ldrh r3, [r3, #42] @ movhi
- 1594 01a0 9BB2 uxth r3, r3
- 1595 .loc 1 1485 22
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 55
- 1596 01a2 013B subs r3, r3, #1
- 1597 01a4 9AB2 uxth r2, r3
- 1598 01a6 FB68 ldr r3, [r7, #12]
- 1599 01a8 5A85 strh r2, [r3, #42] @ movhi
- 1600 .L70:
- 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1601 .loc 1 1469 16
- 1602 01aa FB68 ldr r3, [r7, #12]
- 1603 01ac 5B8D ldrh r3, [r3, #42] @ movhi
- 1604 01ae 9BB2 uxth r3, r3
- 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1605 .loc 1 1469 11
- 1606 01b0 002B cmp r3, #0
- 1607 01b2 D6D1 bne .L72
- 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until AF flag is set */
- 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart);
- 1608 .loc 1 1489 13
- 1609 01b4 7B69 ldr r3, [r7, #20]
- 1610 01b6 0093 str r3, [sp]
- 1611 01b8 3B68 ldr r3, [r7]
- 1612 01ba 0022 movs r2, #0
- 1613 01bc 1021 movs r1, #16
- 1614 01be F868 ldr r0, [r7, #12]
- 1615 01c0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1616 01c4 0346 mov r3, r0
- 1617 01c6 FB74 strb r3, [r7, #19]
- 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (error != HAL_OK)
- 1618 .loc 1 1491 8
- 1619 01c8 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
- 1620 01ca 002B cmp r3, #0
- 1621 01cc 17D0 beq .L73
- 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
- 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 */
- 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
- 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount;
- 1622 .loc 1 1497 20
- 1623 01ce FB68 ldr r3, [r7, #12]
- 1624 01d0 5B8D ldrh r3, [r3, #42] @ movhi
- 1625 01d2 3B82 strh r3, [r7, #16] @ movhi
- 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
- 1626 .loc 1 1498 16
- 1627 01d4 FB68 ldr r3, [r7, #12]
- 1628 01d6 5B6C ldr r3, [r3, #68]
- 1629 .loc 1 1498 10
- 1630 01d8 042B cmp r3, #4
- 1631 01da 06D1 bne .L74
- 1632 .loc 1 1498 49 discriminator 1
- 1633 01dc 3B8A ldrh r3, [r7, #16]
- 1634 01de 002B cmp r3, #0
- 1635 01e0 03D1 bne .L74
- 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset ErrorCode to NONE */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 56
- 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 1636 .loc 1 1501 25
- 1637 01e2 FB68 ldr r3, [r7, #12]
- 1638 01e4 0022 movs r2, #0
- 1639 01e6 5A64 str r2, [r3, #68]
- 1640 01e8 26E0 b .L75
- 1641 .L74:
- 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1642 .loc 1 1506 13
- 1643 01ea FB68 ldr r3, [r7, #12]
- 1644 01ec 1B68 ldr r3, [r3]
- 1645 .loc 1 1506 29
- 1646 01ee 5A68 ldr r2, [r3, #4]
- 1647 .loc 1 1506 13
- 1648 01f0 FB68 ldr r3, [r7, #12]
- 1649 01f2 1B68 ldr r3, [r3]
- 1650 .loc 1 1506 29
- 1651 01f4 42F40042 orr r2, r2, #32768
- 1652 01f8 5A60 str r2, [r3, #4]
- 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1653 .loc 1 1507 16
- 1654 01fa 0123 movs r3, #1
- 1655 01fc 49E0 b .L63
- 1656 .L73:
- 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 1657 .loc 1 1513 7
- 1658 01fe F868 ldr r0, [r7, #12]
- 1659 0200 FFF7FEFF bl I2C_Flush_TXDR
- 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear AF flag */
- 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 1660 .loc 1 1516 7
- 1661 0204 FB68 ldr r3, [r7, #12]
- 1662 0206 1B68 ldr r3, [r3]
- 1663 0208 1022 movs r2, #16
- 1664 020a DA61 str r2, [r3, #28]
- 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
- 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 1665 .loc 1 1519 11
- 1666 020c 7A69 ldr r2, [r7, #20]
- 1667 020e 3968 ldr r1, [r7]
- 1668 0210 F868 ldr r0, [r7, #12]
- 1669 0212 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
- 1670 0216 0346 mov r3, r0
- 1671 .loc 1 1519 10
- 1672 0218 002B cmp r3, #0
- 1673 021a 09D0 beq .L76
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 57
- 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1674 .loc 1 1522 13
- 1675 021c FB68 ldr r3, [r7, #12]
- 1676 021e 1B68 ldr r3, [r3]
- 1677 .loc 1 1522 29
- 1678 0220 5A68 ldr r2, [r3, #4]
- 1679 .loc 1 1522 13
- 1680 0222 FB68 ldr r3, [r7, #12]
- 1681 0224 1B68 ldr r3, [r3]
- 1682 .loc 1 1522 29
- 1683 0226 42F40042 orr r2, r2, #32768
- 1684 022a 5A60 str r2, [r3, #4]
- 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1685 .loc 1 1524 16
- 1686 022c 0123 movs r3, #1
- 1687 022e 30E0 b .L63
- 1688 .L76:
- 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
- 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 1689 .loc 1 1528 7
- 1690 0230 FB68 ldr r3, [r7, #12]
- 1691 0232 1B68 ldr r3, [r3]
- 1692 0234 2022 movs r2, #32
- 1693 0236 DA61 str r2, [r3, #28]
- 1694 .L75:
- 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
- 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
- 1695 .loc 1 1532 9
- 1696 0238 7B69 ldr r3, [r7, #20]
- 1697 023a 0093 str r3, [sp]
- 1698 023c 3B68 ldr r3, [r7]
- 1699 023e 0122 movs r2, #1
- 1700 0240 4FF40041 mov r1, #32768
- 1701 0244 F868 ldr r0, [r7, #12]
- 1702 0246 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1703 024a 0346 mov r3, r0
- 1704 .loc 1 1532 8
- 1705 024c 002B cmp r3, #0
- 1706 024e 09D0 beq .L77
- 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1707 .loc 1 1535 11
- 1708 0250 FB68 ldr r3, [r7, #12]
- 1709 0252 1B68 ldr r3, [r3]
- 1710 .loc 1 1535 27
- 1711 0254 5A68 ldr r2, [r3, #4]
- 1712 .loc 1 1535 11
- 1713 0256 FB68 ldr r3, [r7, #12]
- 1714 0258 1B68 ldr r3, [r3]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 58
- 1715 .loc 1 1535 27
- 1716 025a 42F40042 orr r2, r2, #32768
- 1717 025e 5A60 str r2, [r3, #4]
- 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1718 .loc 1 1536 14
- 1719 0260 0123 movs r3, #1
- 1720 0262 16E0 b .L63
- 1721 .L77:
- 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1722 .loc 1 1540 9
- 1723 0264 FB68 ldr r3, [r7, #12]
- 1724 0266 1B68 ldr r3, [r3]
- 1725 .loc 1 1540 25
- 1726 0268 5A68 ldr r2, [r3, #4]
- 1727 .loc 1 1540 9
- 1728 026a FB68 ldr r3, [r7, #12]
- 1729 026c 1B68 ldr r3, [r3]
- 1730 .loc 1 1540 25
- 1731 026e 42F40042 orr r2, r2, #32768
- 1732 0272 5A60 str r2, [r3, #4]
- 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 1733 .loc 1 1542 17
- 1734 0274 FB68 ldr r3, [r7, #12]
- 1735 0276 2022 movs r2, #32
- 1736 0278 83F84120 strb r2, [r3, #65]
- 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 1737 .loc 1 1543 17
- 1738 027c FB68 ldr r3, [r7, #12]
- 1739 027e 0022 movs r2, #0
- 1740 0280 83F84220 strb r2, [r3, #66]
- 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 1741 .loc 1 1546 5
- 1742 0284 FB68 ldr r3, [r7, #12]
- 1743 0286 0022 movs r2, #0
- 1744 0288 83F84020 strb r2, [r3, #64]
- 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 1745 .loc 1 1548 12
- 1746 028c 0023 movs r3, #0
- 1747 028e 00E0 b .L63
- 1748 .L60:
- 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 1749 .loc 1 1552 12
- 1750 0290 0223 movs r3, #2
- 1751 .L63:
- 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1752 .loc 1 1554 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 59
- 1753 0292 1846 mov r0, r3
- 1754 0294 1837 adds r7, r7, #24
- 1755 .LCFI35:
- 1756 .cfi_def_cfa_offset 8
- 1757 0296 BD46 mov sp, r7
- 1758 .LCFI36:
- 1759 .cfi_def_cfa_register 13
- 1760 @ sp needed
- 1761 0298 80BD pop {r7, pc}
- 1762 .cfi_endproc
- 1763 .LFE136:
- 1765 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
- 1766 .align 1
- 1767 .global HAL_I2C_Slave_Receive
- 1768 .syntax unified
- 1769 .thumb
- 1770 .thumb_func
- 1772 HAL_I2C_Slave_Receive:
- 1773 .LFB137:
- 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
- 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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,
- 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
- 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1774 .loc 1 1567 1
- 1775 .cfi_startproc
- 1776 @ args = 0, pretend = 0, frame = 24
- 1777 @ frame_needed = 1, uses_anonymous_args = 0
- 1778 0000 80B5 push {r7, lr}
- 1779 .LCFI37:
- 1780 .cfi_def_cfa_offset 8
- 1781 .cfi_offset 7, -8
- 1782 .cfi_offset 14, -4
- 1783 0002 88B0 sub sp, sp, #32
- 1784 .LCFI38:
- 1785 .cfi_def_cfa_offset 40
- 1786 0004 02AF add r7, sp, #8
- 1787 .LCFI39:
- 1788 .cfi_def_cfa 7, 32
- 1789 0006 F860 str r0, [r7, #12]
- 1790 0008 B960 str r1, [r7, #8]
- 1791 000a 3B60 str r3, [r7]
- 1792 000c 1346 mov r3, r2 @ movhi
- 1793 000e FB80 strh r3, [r7, #6] @ movhi
- 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 1794 .loc 1 1570 11
- 1795 0010 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 60
- 1796 0012 93F84130 ldrb r3, [r3, #65]
- 1797 0016 DBB2 uxtb r3, r3
- 1798 .loc 1 1570 6
- 1799 0018 202B cmp r3, #32
- 1800 001a 40F0FC80 bne .L79
- 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 1801 .loc 1 1572 8
- 1802 001e BB68 ldr r3, [r7, #8]
- 1803 0020 002B cmp r3, #0
- 1804 0022 02D0 beq .L80
- 1805 .loc 1 1572 25 discriminator 1
- 1806 0024 FB88 ldrh r3, [r7, #6]
- 1807 0026 002B cmp r3, #0
- 1808 0028 05D1 bne .L81
- 1809 .L80:
- 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 1810 .loc 1 1574 23
- 1811 002a FB68 ldr r3, [r7, #12]
- 1812 002c 4FF40072 mov r2, #512
- 1813 0030 5A64 str r2, [r3, #68]
- 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1814 .loc 1 1575 15
- 1815 0032 0123 movs r3, #1
- 1816 0034 F0E0 b .L82
- 1817 .L81:
- 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 1818 .loc 1 1578 5
- 1819 0036 FB68 ldr r3, [r7, #12]
- 1820 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 1821 003c 012B cmp r3, #1
- 1822 003e 01D1 bne .L83
- 1823 .loc 1 1578 5 is_stmt 0 discriminator 1
- 1824 0040 0223 movs r3, #2
- 1825 0042 E9E0 b .L82
- 1826 .L83:
- 1827 .loc 1 1578 5 discriminator 2
- 1828 0044 FB68 ldr r3, [r7, #12]
- 1829 0046 0122 movs r2, #1
- 1830 0048 83F84020 strb r2, [r3, #64]
- 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
- 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 1831 .loc 1 1581 17 is_stmt 1 discriminator 2
- 1832 004c FFF7FEFF bl HAL_GetTick
- 1833 0050 7861 str r0, [r7, #20]
- 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 1834 .loc 1 1583 21 discriminator 2
- 1835 0052 FB68 ldr r3, [r7, #12]
- 1836 0054 2222 movs r2, #34
- 1837 0056 83F84120 strb r2, [r3, #65]
- 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 1838 .loc 1 1584 21 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 61
- 1839 005a FB68 ldr r3, [r7, #12]
- 1840 005c 2022 movs r2, #32
- 1841 005e 83F84220 strb r2, [r3, #66]
- 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 1842 .loc 1 1585 21 discriminator 2
- 1843 0062 FB68 ldr r3, [r7, #12]
- 1844 0064 0022 movs r2, #0
- 1845 0066 5A64 str r2, [r3, #68]
- 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 1846 .loc 1 1588 21 discriminator 2
- 1847 0068 FB68 ldr r3, [r7, #12]
- 1848 006a BA68 ldr r2, [r7, #8]
- 1849 006c 5A62 str r2, [r3, #36]
- 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 1850 .loc 1 1589 21 discriminator 2
- 1851 006e FB68 ldr r3, [r7, #12]
- 1852 0070 FA88 ldrh r2, [r7, #6] @ movhi
- 1853 0072 5A85 strh r2, [r3, #42] @ movhi
- 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 1854 .loc 1 1590 26 discriminator 2
- 1855 0074 FB68 ldr r3, [r7, #12]
- 1856 0076 5B8D ldrh r3, [r3, #42] @ movhi
- 1857 0078 9AB2 uxth r2, r3
- 1858 .loc 1 1590 20 discriminator 2
- 1859 007a FB68 ldr r3, [r7, #12]
- 1860 007c 1A85 strh r2, [r3, #40] @ movhi
- 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 1861 .loc 1 1591 21 discriminator 2
- 1862 007e FB68 ldr r3, [r7, #12]
- 1863 0080 0022 movs r2, #0
- 1864 0082 5A63 str r2, [r3, #52]
- 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 1865 .loc 1 1594 9 discriminator 2
- 1866 0084 FB68 ldr r3, [r7, #12]
- 1867 0086 1B68 ldr r3, [r3]
- 1868 .loc 1 1594 25 discriminator 2
- 1869 0088 5A68 ldr r2, [r3, #4]
- 1870 .loc 1 1594 9 discriminator 2
- 1871 008a FB68 ldr r3, [r7, #12]
- 1872 008c 1B68 ldr r3, [r3]
- 1873 .loc 1 1594 25 discriminator 2
- 1874 008e 22F40042 bic r2, r2, #32768
- 1875 0092 5A60 str r2, [r3, #4]
- 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
- 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
- 1876 .loc 1 1597 9 discriminator 2
- 1877 0094 7B69 ldr r3, [r7, #20]
- 1878 0096 0093 str r3, [sp]
- 1879 0098 3B68 ldr r3, [r7]
- 1880 009a 0022 movs r2, #0
- 1881 009c 0821 movs r1, #8
- 1882 009e F868 ldr r0, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 62
- 1883 00a0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1884 00a4 0346 mov r3, r0
- 1885 .loc 1 1597 8 discriminator 2
- 1886 00a6 002B cmp r3, #0
- 1887 00a8 09D0 beq .L84
- 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1888 .loc 1 1600 11
- 1889 00aa FB68 ldr r3, [r7, #12]
- 1890 00ac 1B68 ldr r3, [r3]
- 1891 .loc 1 1600 27
- 1892 00ae 5A68 ldr r2, [r3, #4]
- 1893 .loc 1 1600 11
- 1894 00b0 FB68 ldr r3, [r7, #12]
- 1895 00b2 1B68 ldr r3, [r3]
- 1896 .loc 1 1600 27
- 1897 00b4 42F40042 orr r2, r2, #32768
- 1898 00b8 5A60 str r2, [r3, #4]
- 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1899 .loc 1 1601 14
- 1900 00ba 0123 movs r3, #1
- 1901 00bc ACE0 b .L82
- 1902 .L84:
- 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
- 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 1903 .loc 1 1605 5
- 1904 00be FB68 ldr r3, [r7, #12]
- 1905 00c0 1B68 ldr r3, [r3]
- 1906 00c2 0822 movs r2, #8
- 1907 00c4 DA61 str r2, [r3, #28]
- 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
- 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
- 1908 .loc 1 1608 9
- 1909 00c6 7B69 ldr r3, [r7, #20]
- 1910 00c8 0093 str r3, [sp]
- 1911 00ca 3B68 ldr r3, [r7]
- 1912 00cc 0122 movs r2, #1
- 1913 00ce 4FF48031 mov r1, #65536
- 1914 00d2 F868 ldr r0, [r7, #12]
- 1915 00d4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 1916 00d8 0346 mov r3, r0
- 1917 .loc 1 1608 8
- 1918 00da 002B cmp r3, #0
- 1919 00dc 54D0 beq .L86
- 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1920 .loc 1 1611 11
- 1921 00de FB68 ldr r3, [r7, #12]
- 1922 00e0 1B68 ldr r3, [r3]
- 1923 .loc 1 1611 27
- 1924 00e2 5A68 ldr r2, [r3, #4]
- 1925 .loc 1 1611 11
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 63
- 1926 00e4 FB68 ldr r3, [r7, #12]
- 1927 00e6 1B68 ldr r3, [r3]
- 1928 .loc 1 1611 27
- 1929 00e8 42F40042 orr r2, r2, #32768
- 1930 00ec 5A60 str r2, [r3, #4]
- 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 1931 .loc 1 1612 14
- 1932 00ee 0123 movs r3, #1
- 1933 00f0 92E0 b .L82
- 1934 .L89:
- 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
- 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
- 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 1935 .loc 1 1618 11
- 1936 00f2 7A69 ldr r2, [r7, #20]
- 1937 00f4 3968 ldr r1, [r7]
- 1938 00f6 F868 ldr r0, [r7, #12]
- 1939 00f8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
- 1940 00fc 0346 mov r3, r0
- 1941 .loc 1 1618 10
- 1942 00fe 002B cmp r3, #0
- 1943 0100 29D0 beq .L87
- 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 1944 .loc 1 1621 13
- 1945 0102 FB68 ldr r3, [r7, #12]
- 1946 0104 1B68 ldr r3, [r3]
- 1947 .loc 1 1621 29
- 1948 0106 5A68 ldr r2, [r3, #4]
- 1949 .loc 1 1621 13
- 1950 0108 FB68 ldr r3, [r7, #12]
- 1951 010a 1B68 ldr r3, [r3]
- 1952 .loc 1 1621 29
- 1953 010c 42F40042 orr r2, r2, #32768
- 1954 0110 5A60 str r2, [r3, #4]
- 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
- 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
- 1955 .loc 1 1624 13
- 1956 0112 FB68 ldr r3, [r7, #12]
- 1957 0114 1B68 ldr r3, [r3]
- 1958 0116 9B69 ldr r3, [r3, #24]
- 1959 0118 03F00403 and r3, r3, #4
- 1960 .loc 1 1624 12
- 1961 011c 042B cmp r3, #4
- 1962 011e 18D1 bne .L88
- 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 1963 .loc 1 1627 42
- 1964 0120 FB68 ldr r3, [r7, #12]
- 1965 0122 1B68 ldr r3, [r3]
- 1966 .loc 1 1627 52
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 64
- 1967 0124 5A6A ldr r2, [r3, #36]
- 1968 .loc 1 1627 16
- 1969 0126 FB68 ldr r3, [r7, #12]
- 1970 0128 5B6A ldr r3, [r3, #36]
- 1971 .loc 1 1627 29
- 1972 012a D2B2 uxtb r2, r2
- 1973 .loc 1 1627 27
- 1974 012c 1A70 strb r2, [r3]
- 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 1975 .loc 1 1630 15
- 1976 012e FB68 ldr r3, [r7, #12]
- 1977 0130 5B6A ldr r3, [r3, #36]
- 1978 .loc 1 1630 25
- 1979 0132 5A1C adds r2, r3, #1
- 1980 0134 FB68 ldr r3, [r7, #12]
- 1981 0136 5A62 str r2, [r3, #36]
- 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 1982 .loc 1 1632 15
- 1983 0138 FB68 ldr r3, [r7, #12]
- 1984 013a 5B8D ldrh r3, [r3, #42] @ movhi
- 1985 013c 9BB2 uxth r3, r3
- 1986 .loc 1 1632 26
- 1987 013e 013B subs r3, r3, #1
- 1988 0140 9AB2 uxth r2, r3
- 1989 0142 FB68 ldr r3, [r7, #12]
- 1990 0144 5A85 strh r2, [r3, #42] @ movhi
- 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 1991 .loc 1 1633 15
- 1992 0146 FB68 ldr r3, [r7, #12]
- 1993 0148 1B8D ldrh r3, [r3, #40]
- 1994 .loc 1 1633 25
- 1995 014a 013B subs r3, r3, #1
- 1996 014c 9AB2 uxth r2, r3
- 1997 014e FB68 ldr r3, [r7, #12]
- 1998 0150 1A85 strh r2, [r3, #40] @ movhi
- 1999 .L88:
- 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2000 .loc 1 1636 16
- 2001 0152 0123 movs r3, #1
- 2002 0154 60E0 b .L82
- 2003 .L87:
- 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 2004 .loc 1 1640 38
- 2005 0156 FB68 ldr r3, [r7, #12]
- 2006 0158 1B68 ldr r3, [r3]
- 2007 .loc 1 1640 48
- 2008 015a 5A6A ldr r2, [r3, #36]
- 2009 .loc 1 1640 12
- 2010 015c FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 65
- 2011 015e 5B6A ldr r3, [r3, #36]
- 2012 .loc 1 1640 25
- 2013 0160 D2B2 uxtb r2, r2
- 2014 .loc 1 1640 23
- 2015 0162 1A70 strb r2, [r3]
- 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 2016 .loc 1 1643 11
- 2017 0164 FB68 ldr r3, [r7, #12]
- 2018 0166 5B6A ldr r3, [r3, #36]
- 2019 .loc 1 1643 21
- 2020 0168 5A1C adds r2, r3, #1
- 2021 016a FB68 ldr r3, [r7, #12]
- 2022 016c 5A62 str r2, [r3, #36]
- 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 2023 .loc 1 1645 11
- 2024 016e FB68 ldr r3, [r7, #12]
- 2025 0170 5B8D ldrh r3, [r3, #42] @ movhi
- 2026 0172 9BB2 uxth r3, r3
- 2027 .loc 1 1645 22
- 2028 0174 013B subs r3, r3, #1
- 2029 0176 9AB2 uxth r2, r3
- 2030 0178 FB68 ldr r3, [r7, #12]
- 2031 017a 5A85 strh r2, [r3, #42] @ movhi
- 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 2032 .loc 1 1646 11
- 2033 017c FB68 ldr r3, [r7, #12]
- 2034 017e 1B8D ldrh r3, [r3, #40]
- 2035 .loc 1 1646 21
- 2036 0180 013B subs r3, r3, #1
- 2037 0182 9AB2 uxth r2, r3
- 2038 0184 FB68 ldr r3, [r7, #12]
- 2039 0186 1A85 strh r2, [r3, #40] @ movhi
- 2040 .L86:
- 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2041 .loc 1 1615 16
- 2042 0188 FB68 ldr r3, [r7, #12]
- 2043 018a 5B8D ldrh r3, [r3, #42] @ movhi
- 2044 018c 9BB2 uxth r3, r3
- 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2045 .loc 1 1615 11
- 2046 018e 002B cmp r3, #0
- 2047 0190 AFD1 bne .L89
- 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
- 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 2048 .loc 1 1650 9
- 2049 0192 7A69 ldr r2, [r7, #20]
- 2050 0194 3968 ldr r1, [r7]
- 2051 0196 F868 ldr r0, [r7, #12]
- 2052 0198 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
- 2053 019c 0346 mov r3, r0
- 2054 .loc 1 1650 8
- 2055 019e 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 66
- 2056 01a0 09D0 beq .L90
- 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 2057 .loc 1 1653 11
- 2058 01a2 FB68 ldr r3, [r7, #12]
- 2059 01a4 1B68 ldr r3, [r3]
- 2060 .loc 1 1653 27
- 2061 01a6 5A68 ldr r2, [r3, #4]
- 2062 .loc 1 1653 11
- 2063 01a8 FB68 ldr r3, [r7, #12]
- 2064 01aa 1B68 ldr r3, [r3]
- 2065 .loc 1 1653 27
- 2066 01ac 42F40042 orr r2, r2, #32768
- 2067 01b0 5A60 str r2, [r3, #4]
- 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2068 .loc 1 1654 14
- 2069 01b2 0123 movs r3, #1
- 2070 01b4 30E0 b .L82
- 2071 .L90:
- 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
- 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 2072 .loc 1 1658 5
- 2073 01b6 FB68 ldr r3, [r7, #12]
- 2074 01b8 1B68 ldr r3, [r3]
- 2075 01ba 2022 movs r2, #32
- 2076 01bc DA61 str r2, [r3, #28]
- 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
- 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
- 2077 .loc 1 1661 9
- 2078 01be 7B69 ldr r3, [r7, #20]
- 2079 01c0 0093 str r3, [sp]
- 2080 01c2 3B68 ldr r3, [r7]
- 2081 01c4 0122 movs r2, #1
- 2082 01c6 4FF40041 mov r1, #32768
- 2083 01ca F868 ldr r0, [r7, #12]
- 2084 01cc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 2085 01d0 0346 mov r3, r0
- 2086 .loc 1 1661 8
- 2087 01d2 002B cmp r3, #0
- 2088 01d4 09D0 beq .L91
- 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 2089 .loc 1 1664 11
- 2090 01d6 FB68 ldr r3, [r7, #12]
- 2091 01d8 1B68 ldr r3, [r3]
- 2092 .loc 1 1664 27
- 2093 01da 5A68 ldr r2, [r3, #4]
- 2094 .loc 1 1664 11
- 2095 01dc FB68 ldr r3, [r7, #12]
- 2096 01de 1B68 ldr r3, [r3]
- 2097 .loc 1 1664 27
- 2098 01e0 42F40042 orr r2, r2, #32768
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 67
- 2099 01e4 5A60 str r2, [r3, #4]
- 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2100 .loc 1 1665 14
- 2101 01e6 0123 movs r3, #1
- 2102 01e8 16E0 b .L82
- 2103 .L91:
- 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 2104 .loc 1 1669 9
- 2105 01ea FB68 ldr r3, [r7, #12]
- 2106 01ec 1B68 ldr r3, [r3]
- 2107 .loc 1 1669 25
- 2108 01ee 5A68 ldr r2, [r3, #4]
- 2109 .loc 1 1669 9
- 2110 01f0 FB68 ldr r3, [r7, #12]
- 2111 01f2 1B68 ldr r3, [r3]
- 2112 .loc 1 1669 25
- 2113 01f4 42F40042 orr r2, r2, #32768
- 2114 01f8 5A60 str r2, [r3, #4]
- 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 2115 .loc 1 1671 17
- 2116 01fa FB68 ldr r3, [r7, #12]
- 2117 01fc 2022 movs r2, #32
- 2118 01fe 83F84120 strb r2, [r3, #65]
- 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 2119 .loc 1 1672 17
- 2120 0202 FB68 ldr r3, [r7, #12]
- 2121 0204 0022 movs r2, #0
- 2122 0206 83F84220 strb r2, [r3, #66]
- 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2123 .loc 1 1675 5
- 2124 020a FB68 ldr r3, [r7, #12]
- 2125 020c 0022 movs r2, #0
- 2126 020e 83F84020 strb r2, [r3, #64]
- 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 2127 .loc 1 1677 12
- 2128 0212 0023 movs r3, #0
- 2129 0214 00E0 b .L82
- 2130 .L79:
- 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2131 .loc 1 1681 12
- 2132 0216 0223 movs r3, #2
- 2133 .L82:
- 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2134 .loc 1 1683 1
- 2135 0218 1846 mov r0, r3
- 2136 021a 1837 adds r7, r7, #24
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 68
- 2137 .LCFI40:
- 2138 .cfi_def_cfa_offset 8
- 2139 021c BD46 mov sp, r7
- 2140 .LCFI41:
- 2141 .cfi_def_cfa_register 13
- 2142 @ sp needed
- 2143 021e 80BD pop {r7, pc}
- 2144 .cfi_endproc
- 2145 .LFE137:
- 2147 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
- 2148 .align 1
- 2149 .global HAL_I2C_Master_Transmit_IT
- 2150 .syntax unified
- 2151 .thumb
- 2152 .thumb_func
- 2154 HAL_I2C_Master_Transmit_IT:
- 2155 .LFB138:
- 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
- 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2156 .loc 1 1697 1
- 2157 .cfi_startproc
- 2158 @ args = 0, pretend = 0, frame = 24
- 2159 @ frame_needed = 1, uses_anonymous_args = 0
- 2160 0000 80B5 push {r7, lr}
- 2161 .LCFI42:
- 2162 .cfi_def_cfa_offset 8
- 2163 .cfi_offset 7, -8
- 2164 .cfi_offset 14, -4
- 2165 0002 88B0 sub sp, sp, #32
- 2166 .LCFI43:
- 2167 .cfi_def_cfa_offset 40
- 2168 0004 02AF add r7, sp, #8
- 2169 .LCFI44:
- 2170 .cfi_def_cfa 7, 32
- 2171 0006 F860 str r0, [r7, #12]
- 2172 0008 7A60 str r2, [r7, #4]
- 2173 000a 1A46 mov r2, r3
- 2174 000c 0B46 mov r3, r1 @ movhi
- 2175 000e 7B81 strh r3, [r7, #10] @ movhi
- 2176 0010 1346 mov r3, r2 @ movhi
- 2177 0012 3B81 strh r3, [r7, #8] @ movhi
- 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 2178 .loc 1 1700 11
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 69
- 2179 0014 FB68 ldr r3, [r7, #12]
- 2180 0016 93F84130 ldrb r3, [r3, #65]
- 2181 001a DBB2 uxtb r3, r3
- 2182 .loc 1 1700 6
- 2183 001c 202B cmp r3, #32
- 2184 001e 7CD1 bne .L93
- 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 2185 .loc 1 1702 9
- 2186 0020 FB68 ldr r3, [r7, #12]
- 2187 0022 1B68 ldr r3, [r3]
- 2188 0024 9B69 ldr r3, [r3, #24]
- 2189 0026 03F40043 and r3, r3, #32768
- 2190 .loc 1 1702 8
- 2191 002a B3F5004F cmp r3, #32768
- 2192 002e 01D1 bne .L94
- 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2193 .loc 1 1704 14
- 2194 0030 0223 movs r3, #2
- 2195 0032 73E0 b .L95
- 2196 .L94:
- 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 2197 .loc 1 1708 5
- 2198 0034 FB68 ldr r3, [r7, #12]
- 2199 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 2200 003a 012B cmp r3, #1
- 2201 003c 01D1 bne .L96
- 2202 .loc 1 1708 5 is_stmt 0 discriminator 1
- 2203 003e 0223 movs r3, #2
- 2204 0040 6CE0 b .L95
- 2205 .L96:
- 2206 .loc 1 1708 5 discriminator 2
- 2207 0042 FB68 ldr r3, [r7, #12]
- 2208 0044 0122 movs r2, #1
- 2209 0046 83F84020 strb r2, [r3, #64]
- 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 2210 .loc 1 1710 23 is_stmt 1 discriminator 2
- 2211 004a FB68 ldr r3, [r7, #12]
- 2212 004c 2122 movs r2, #33
- 2213 004e 83F84120 strb r2, [r3, #65]
- 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 2214 .loc 1 1711 23 discriminator 2
- 2215 0052 FB68 ldr r3, [r7, #12]
- 2216 0054 1022 movs r2, #16
- 2217 0056 83F84220 strb r2, [r3, #66]
- 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 2218 .loc 1 1712 23 discriminator 2
- 2219 005a FB68 ldr r3, [r7, #12]
- 2220 005c 0022 movs r2, #0
- 2221 005e 5A64 str r2, [r3, #68]
- 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 70
- 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 2222 .loc 1 1715 23 discriminator 2
- 2223 0060 FB68 ldr r3, [r7, #12]
- 2224 0062 7A68 ldr r2, [r7, #4]
- 2225 0064 5A62 str r2, [r3, #36]
- 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 2226 .loc 1 1716 23 discriminator 2
- 2227 0066 FB68 ldr r3, [r7, #12]
- 2228 0068 3A89 ldrh r2, [r7, #8] @ movhi
- 2229 006a 5A85 strh r2, [r3, #42] @ movhi
- 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 2230 .loc 1 1717 23 discriminator 2
- 2231 006c FB68 ldr r3, [r7, #12]
- 2232 006e 2D4A ldr r2, .L101
- 2233 0070 DA62 str r2, [r3, #44]
- 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 2234 .loc 1 1718 23 discriminator 2
- 2235 0072 FB68 ldr r3, [r7, #12]
- 2236 0074 2C4A ldr r2, .L101+4
- 2237 0076 5A63 str r2, [r3, #52]
- 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 2238 .loc 1 1720 13 discriminator 2
- 2239 0078 FB68 ldr r3, [r7, #12]
- 2240 007a 5B8D ldrh r3, [r3, #42] @ movhi
- 2241 007c 9BB2 uxth r3, r3
- 2242 .loc 1 1720 8 discriminator 2
- 2243 007e FF2B cmp r3, #255
- 2244 0080 06D9 bls .L97
- 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 2245 .loc 1 1722 22
- 2246 0082 FB68 ldr r3, [r7, #12]
- 2247 0084 FF22 movs r2, #255
- 2248 0086 1A85 strh r2, [r3, #40] @ movhi
- 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 2249 .loc 1 1723 16
- 2250 0088 4FF08073 mov r3, #16777216
- 2251 008c 7B61 str r3, [r7, #20]
- 2252 008e 07E0 b .L98
- 2253 .L97:
- 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 2254 .loc 1 1727 28
- 2255 0090 FB68 ldr r3, [r7, #12]
- 2256 0092 5B8D ldrh r3, [r3, #42] @ movhi
- 2257 0094 9AB2 uxth r2, r3
- 2258 .loc 1 1727 22
- 2259 0096 FB68 ldr r3, [r7, #12]
- 2260 0098 1A85 strh r2, [r3, #40] @ movhi
- 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
- 2261 .loc 1 1728 16
- 2262 009a 4FF00073 mov r3, #33554432
- 2263 009e 7B61 str r3, [r7, #20]
- 2264 .L98:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 71
- 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
- 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 2265 .loc 1 1733 13
- 2266 00a0 FB68 ldr r3, [r7, #12]
- 2267 00a2 1B8D ldrh r3, [r3, #40]
- 2268 .loc 1 1733 8
- 2269 00a4 002B cmp r3, #0
- 2270 00a6 24D0 beq .L99
- 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 2271 .loc 1 1737 35
- 2272 00a8 FB68 ldr r3, [r7, #12]
- 2273 00aa 5B6A ldr r3, [r3, #36]
- 2274 .loc 1 1737 30
- 2275 00ac 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 2276 .loc 1 1737 11
- 2277 00ae FB68 ldr r3, [r7, #12]
- 2278 00b0 1B68 ldr r3, [r3]
- 2279 .loc 1 1737 28
- 2280 00b2 9A62 str r2, [r3, #40]
- 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 2281 .loc 1 1740 11
- 2282 00b4 FB68 ldr r3, [r7, #12]
- 2283 00b6 5B6A ldr r3, [r3, #36]
- 2284 .loc 1 1740 21
- 2285 00b8 5A1C adds r2, r3, #1
- 2286 00ba FB68 ldr r3, [r7, #12]
- 2287 00bc 5A62 str r2, [r3, #36]
- 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 2288 .loc 1 1742 11
- 2289 00be FB68 ldr r3, [r7, #12]
- 2290 00c0 5B8D ldrh r3, [r3, #42] @ movhi
- 2291 00c2 9BB2 uxth r3, r3
- 2292 .loc 1 1742 22
- 2293 00c4 013B subs r3, r3, #1
- 2294 00c6 9AB2 uxth r2, r3
- 2295 00c8 FB68 ldr r3, [r7, #12]
- 2296 00ca 5A85 strh r2, [r3, #42] @ movhi
- 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 2297 .loc 1 1743 11
- 2298 00cc FB68 ldr r3, [r7, #12]
- 2299 00ce 1B8D ldrh r3, [r3, #40]
- 2300 .loc 1 1743 21
- 2301 00d0 013B subs r3, r3, #1
- 2302 00d2 9AB2 uxth r2, r3
- 2303 00d4 FB68 ldr r3, [r7, #12]
- 2304 00d6 1A85 strh r2, [r3, #40] @ movhi
- 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 72
- 2305 .loc 1 1745 58
- 2306 00d8 FB68 ldr r3, [r7, #12]
- 2307 00da 1B8D ldrh r3, [r3, #40]
- 2308 .loc 1 1745 7
- 2309 00dc DBB2 uxtb r3, r3
- 2310 00de 0133 adds r3, r3, #1
- 2311 00e0 DAB2 uxtb r2, r3
- 2312 00e2 7989 ldrh r1, [r7, #10]
- 2313 00e4 114B ldr r3, .L101+8
- 2314 00e6 0093 str r3, [sp]
- 2315 00e8 7B69 ldr r3, [r7, #20]
- 2316 00ea F868 ldr r0, [r7, #12]
- 2317 00ec FFF7FEFF bl I2C_TransferConfig
- 2318 00f0 09E0 b .L100
- 2319 .L99:
- 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
- 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
- 2320 .loc 1 1750 57
- 2321 00f2 FB68 ldr r3, [r7, #12]
- 2322 00f4 1B8D ldrh r3, [r3, #40]
- 2323 .loc 1 1750 7
- 2324 00f6 DAB2 uxtb r2, r3
- 2325 00f8 7989 ldrh r1, [r7, #10]
- 2326 00fa 0C4B ldr r3, .L101+8
- 2327 00fc 0093 str r3, [sp]
- 2328 00fe 7B69 ldr r3, [r7, #20]
- 2329 0100 F868 ldr r0, [r7, #12]
- 2330 0102 FFF7FEFF bl I2C_TransferConfig
- 2331 .L100:
- 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
- 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2332 .loc 1 1755 5
- 2333 0106 FB68 ldr r3, [r7, #12]
- 2334 0108 0022 movs r2, #0
- 2335 010a 83F84020 strb r2, [r3, #64]
- 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 2336 .loc 1 1765 5
- 2337 010e 0121 movs r1, #1
- 2338 0110 F868 ldr r0, [r7, #12]
- 2339 0112 FFF7FEFF bl I2C_Enable_IRQ
- 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 73
- 2340 .loc 1 1767 12
- 2341 0116 0023 movs r3, #0
- 2342 0118 00E0 b .L95
- 2343 .L93:
- 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2344 .loc 1 1771 12
- 2345 011a 0223 movs r3, #2
- 2346 .L95:
- 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2347 .loc 1 1773 1
- 2348 011c 1846 mov r0, r3
- 2349 011e 1837 adds r7, r7, #24
- 2350 .LCFI45:
- 2351 .cfi_def_cfa_offset 8
- 2352 0120 BD46 mov sp, r7
- 2353 .LCFI46:
- 2354 .cfi_def_cfa_register 13
- 2355 @ sp needed
- 2356 0122 80BD pop {r7, pc}
- 2357 .L102:
- 2358 .align 2
- 2359 .L101:
- 2360 0124 0000FFFF .word -65536
- 2361 0128 00000000 .word I2C_Master_ISR_IT
- 2362 012c 00200080 .word -2147475456
- 2363 .cfi_endproc
- 2364 .LFE138:
- 2366 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
- 2367 .align 1
- 2368 .global HAL_I2C_Master_Receive_IT
- 2369 .syntax unified
- 2370 .thumb
- 2371 .thumb_func
- 2373 HAL_I2C_Master_Receive_IT:
- 2374 .LFB139:
- 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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 *
- 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
- 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2375 .loc 1 1787 1
- 2376 .cfi_startproc
- 2377 @ args = 0, pretend = 0, frame = 24
- 2378 @ frame_needed = 1, uses_anonymous_args = 0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 74
- 2379 0000 80B5 push {r7, lr}
- 2380 .LCFI47:
- 2381 .cfi_def_cfa_offset 8
- 2382 .cfi_offset 7, -8
- 2383 .cfi_offset 14, -4
- 2384 0002 88B0 sub sp, sp, #32
- 2385 .LCFI48:
- 2386 .cfi_def_cfa_offset 40
- 2387 0004 02AF add r7, sp, #8
- 2388 .LCFI49:
- 2389 .cfi_def_cfa 7, 32
- 2390 0006 F860 str r0, [r7, #12]
- 2391 0008 7A60 str r2, [r7, #4]
- 2392 000a 1A46 mov r2, r3
- 2393 000c 0B46 mov r3, r1 @ movhi
- 2394 000e 7B81 strh r3, [r7, #10] @ movhi
- 2395 0010 1346 mov r3, r2 @ movhi
- 2396 0012 3B81 strh r3, [r7, #8] @ movhi
- 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 2397 .loc 1 1790 11
- 2398 0014 FB68 ldr r3, [r7, #12]
- 2399 0016 93F84130 ldrb r3, [r3, #65]
- 2400 001a DBB2 uxtb r3, r3
- 2401 .loc 1 1790 6
- 2402 001c 202B cmp r3, #32
- 2403 001e 53D1 bne .L104
- 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 2404 .loc 1 1792 9
- 2405 0020 FB68 ldr r3, [r7, #12]
- 2406 0022 1B68 ldr r3, [r3]
- 2407 0024 9B69 ldr r3, [r3, #24]
- 2408 0026 03F40043 and r3, r3, #32768
- 2409 .loc 1 1792 8
- 2410 002a B3F5004F cmp r3, #32768
- 2411 002e 01D1 bne .L105
- 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2412 .loc 1 1794 14
- 2413 0030 0223 movs r3, #2
- 2414 0032 4AE0 b .L106
- 2415 .L105:
- 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 2416 .loc 1 1798 5
- 2417 0034 FB68 ldr r3, [r7, #12]
- 2418 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 2419 003a 012B cmp r3, #1
- 2420 003c 01D1 bne .L107
- 2421 .loc 1 1798 5 is_stmt 0 discriminator 1
- 2422 003e 0223 movs r3, #2
- 2423 0040 43E0 b .L106
- 2424 .L107:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 75
- 2425 .loc 1 1798 5 discriminator 2
- 2426 0042 FB68 ldr r3, [r7, #12]
- 2427 0044 0122 movs r2, #1
- 2428 0046 83F84020 strb r2, [r3, #64]
- 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 2429 .loc 1 1800 23 is_stmt 1 discriminator 2
- 2430 004a FB68 ldr r3, [r7, #12]
- 2431 004c 2222 movs r2, #34
- 2432 004e 83F84120 strb r2, [r3, #65]
- 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 2433 .loc 1 1801 23 discriminator 2
- 2434 0052 FB68 ldr r3, [r7, #12]
- 2435 0054 1022 movs r2, #16
- 2436 0056 83F84220 strb r2, [r3, #66]
- 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 2437 .loc 1 1802 23 discriminator 2
- 2438 005a FB68 ldr r3, [r7, #12]
- 2439 005c 0022 movs r2, #0
- 2440 005e 5A64 str r2, [r3, #68]
- 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 2441 .loc 1 1805 23 discriminator 2
- 2442 0060 FB68 ldr r3, [r7, #12]
- 2443 0062 7A68 ldr r2, [r7, #4]
- 2444 0064 5A62 str r2, [r3, #36]
- 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 2445 .loc 1 1806 23 discriminator 2
- 2446 0066 FB68 ldr r3, [r7, #12]
- 2447 0068 3A89 ldrh r2, [r7, #8] @ movhi
- 2448 006a 5A85 strh r2, [r3, #42] @ movhi
- 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 2449 .loc 1 1807 23 discriminator 2
- 2450 006c FB68 ldr r3, [r7, #12]
- 2451 006e 194A ldr r2, .L110
- 2452 0070 DA62 str r2, [r3, #44]
- 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 2453 .loc 1 1808 23 discriminator 2
- 2454 0072 FB68 ldr r3, [r7, #12]
- 2455 0074 184A ldr r2, .L110+4
- 2456 0076 5A63 str r2, [r3, #52]
- 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 2457 .loc 1 1810 13 discriminator 2
- 2458 0078 FB68 ldr r3, [r7, #12]
- 2459 007a 5B8D ldrh r3, [r3, #42] @ movhi
- 2460 007c 9BB2 uxth r3, r3
- 2461 .loc 1 1810 8 discriminator 2
- 2462 007e FF2B cmp r3, #255
- 2463 0080 06D9 bls .L108
- 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 2464 .loc 1 1812 22
- 2465 0082 FB68 ldr r3, [r7, #12]
- 2466 0084 0122 movs r2, #1
- 2467 0086 1A85 strh r2, [r3, #40] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 76
- 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 2468 .loc 1 1813 16
- 2469 0088 4FF08073 mov r3, #16777216
- 2470 008c 7B61 str r3, [r7, #20]
- 2471 008e 07E0 b .L109
- 2472 .L108:
- 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 2473 .loc 1 1817 28
- 2474 0090 FB68 ldr r3, [r7, #12]
- 2475 0092 5B8D ldrh r3, [r3, #42] @ movhi
- 2476 0094 9AB2 uxth r2, r3
- 2477 .loc 1 1817 22
- 2478 0096 FB68 ldr r3, [r7, #12]
- 2479 0098 1A85 strh r2, [r3, #40] @ movhi
- 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
- 2480 .loc 1 1818 16
- 2481 009a 4FF00073 mov r3, #33554432
- 2482 009e 7B61 str r3, [r7, #20]
- 2483 .L109:
- 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
- 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
- 2484 .loc 1 1823 55
- 2485 00a0 FB68 ldr r3, [r7, #12]
- 2486 00a2 1B8D ldrh r3, [r3, #40]
- 2487 .loc 1 1823 5
- 2488 00a4 DAB2 uxtb r2, r3
- 2489 00a6 7989 ldrh r1, [r7, #10]
- 2490 00a8 0C4B ldr r3, .L110+8
- 2491 00aa 0093 str r3, [sp]
- 2492 00ac 7B69 ldr r3, [r7, #20]
- 2493 00ae F868 ldr r0, [r7, #12]
- 2494 00b0 FFF7FEFF bl I2C_TransferConfig
- 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2495 .loc 1 1826 5
- 2496 00b4 FB68 ldr r3, [r7, #12]
- 2497 00b6 0022 movs r2, #0
- 2498 00b8 83F84020 strb r2, [r3, #64]
- 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
- 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
- 2499 .loc 1 1836 5
- 2500 00bc 0221 movs r1, #2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 77
- 2501 00be F868 ldr r0, [r7, #12]
- 2502 00c0 FFF7FEFF bl I2C_Enable_IRQ
- 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 2503 .loc 1 1838 12
- 2504 00c4 0023 movs r3, #0
- 2505 00c6 00E0 b .L106
- 2506 .L104:
- 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2507 .loc 1 1842 12
- 2508 00c8 0223 movs r3, #2
- 2509 .L106:
- 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2510 .loc 1 1844 1
- 2511 00ca 1846 mov r0, r3
- 2512 00cc 1837 adds r7, r7, #24
- 2513 .LCFI50:
- 2514 .cfi_def_cfa_offset 8
- 2515 00ce BD46 mov sp, r7
- 2516 .LCFI51:
- 2517 .cfi_def_cfa_register 13
- 2518 @ sp needed
- 2519 00d0 80BD pop {r7, pc}
- 2520 .L111:
- 2521 00d2 00BF .align 2
- 2522 .L110:
- 2523 00d4 0000FFFF .word -65536
- 2524 00d8 00000000 .word I2C_Master_ISR_IT
- 2525 00dc 00240080 .word -2147474432
- 2526 .cfi_endproc
- 2527 .LFE139:
- 2529 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
- 2530 .align 1
- 2531 .global HAL_I2C_Slave_Transmit_IT
- 2532 .syntax unified
- 2533 .thumb
- 2534 .thumb_func
- 2536 HAL_I2C_Slave_Transmit_IT:
- 2537 .LFB140:
- 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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)
- 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2538 .loc 1 1855 1
- 2539 .cfi_startproc
- 2540 @ args = 0, pretend = 0, frame = 16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 78
- 2541 @ frame_needed = 1, uses_anonymous_args = 0
- 2542 0000 80B5 push {r7, lr}
- 2543 .LCFI52:
- 2544 .cfi_def_cfa_offset 8
- 2545 .cfi_offset 7, -8
- 2546 .cfi_offset 14, -4
- 2547 0002 84B0 sub sp, sp, #16
- 2548 .LCFI53:
- 2549 .cfi_def_cfa_offset 24
- 2550 0004 00AF add r7, sp, #0
- 2551 .LCFI54:
- 2552 .cfi_def_cfa_register 7
- 2553 0006 F860 str r0, [r7, #12]
- 2554 0008 B960 str r1, [r7, #8]
- 2555 000a 1346 mov r3, r2
- 2556 000c FB80 strh r3, [r7, #6] @ movhi
- 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 2557 .loc 1 1856 11
- 2558 000e FB68 ldr r3, [r7, #12]
- 2559 0010 93F84130 ldrb r3, [r3, #65]
- 2560 0014 DBB2 uxtb r3, r3
- 2561 .loc 1 1856 6
- 2562 0016 202B cmp r3, #32
- 2563 0018 56D1 bne .L113
- 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 2564 .loc 1 1859 5
- 2565 001a FB68 ldr r3, [r7, #12]
- 2566 001c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 2567 0020 012B cmp r3, #1
- 2568 0022 01D1 bne .L114
- 2569 .loc 1 1859 5 is_stmt 0 discriminator 1
- 2570 0024 0223 movs r3, #2
- 2571 0026 50E0 b .L115
- 2572 .L114:
- 2573 .loc 1 1859 5 discriminator 2
- 2574 0028 FB68 ldr r3, [r7, #12]
- 2575 002a 0122 movs r2, #1
- 2576 002c 83F84020 strb r2, [r3, #64]
- 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 2577 .loc 1 1861 23 is_stmt 1 discriminator 2
- 2578 0030 FB68 ldr r3, [r7, #12]
- 2579 0032 2122 movs r2, #33
- 2580 0034 83F84120 strb r2, [r3, #65]
- 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 2581 .loc 1 1862 23 discriminator 2
- 2582 0038 FB68 ldr r3, [r7, #12]
- 2583 003a 2022 movs r2, #32
- 2584 003c 83F84220 strb r2, [r3, #66]
- 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 2585 .loc 1 1863 23 discriminator 2
- 2586 0040 FB68 ldr r3, [r7, #12]
- 2587 0042 0022 movs r2, #0
- 2588 0044 5A64 str r2, [r3, #68]
- 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 79
- 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 2589 .loc 1 1866 9 discriminator 2
- 2590 0046 FB68 ldr r3, [r7, #12]
- 2591 0048 1B68 ldr r3, [r3]
- 2592 .loc 1 1866 25 discriminator 2
- 2593 004a 5A68 ldr r2, [r3, #4]
- 2594 .loc 1 1866 9 discriminator 2
- 2595 004c FB68 ldr r3, [r7, #12]
- 2596 004e 1B68 ldr r3, [r3]
- 2597 .loc 1 1866 25 discriminator 2
- 2598 0050 22F40042 bic r2, r2, #32768
- 2599 0054 5A60 str r2, [r3, #4]
- 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 2600 .loc 1 1869 23 discriminator 2
- 2601 0056 FB68 ldr r3, [r7, #12]
- 2602 0058 BA68 ldr r2, [r7, #8]
- 2603 005a 5A62 str r2, [r3, #36]
- 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 2604 .loc 1 1870 23 discriminator 2
- 2605 005c FB68 ldr r3, [r7, #12]
- 2606 005e FA88 ldrh r2, [r7, #6] @ movhi
- 2607 0060 5A85 strh r2, [r3, #42] @ movhi
- 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 2608 .loc 1 1871 29 discriminator 2
- 2609 0062 FB68 ldr r3, [r7, #12]
- 2610 0064 5B8D ldrh r3, [r3, #42] @ movhi
- 2611 0066 9AB2 uxth r2, r3
- 2612 .loc 1 1871 23 discriminator 2
- 2613 0068 FB68 ldr r3, [r7, #12]
- 2614 006a 1A85 strh r2, [r3, #40] @ movhi
- 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 2615 .loc 1 1872 23 discriminator 2
- 2616 006c FB68 ldr r3, [r7, #12]
- 2617 006e 194A ldr r2, .L117
- 2618 0070 DA62 str r2, [r3, #44]
- 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
- 2619 .loc 1 1873 23 discriminator 2
- 2620 0072 FB68 ldr r3, [r7, #12]
- 2621 0074 184A ldr r2, .L117+4
- 2622 0076 5A63 str r2, [r3, #52]
- 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
- 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
- 2623 .loc 1 1876 19 discriminator 2
- 2624 0078 FB68 ldr r3, [r7, #12]
- 2625 007a 1B6A ldr r3, [r3, #32]
- 2626 .loc 1 1876 8 discriminator 2
- 2627 007c B3F5003F cmp r3, #131072
- 2628 0080 17D1 bne .L116
- 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 2629 .loc 1 1880 35
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 80
- 2630 0082 FB68 ldr r3, [r7, #12]
- 2631 0084 5B6A ldr r3, [r3, #36]
- 2632 .loc 1 1880 30
- 2633 0086 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 2634 .loc 1 1880 11
- 2635 0088 FB68 ldr r3, [r7, #12]
- 2636 008a 1B68 ldr r3, [r3]
- 2637 .loc 1 1880 28
- 2638 008c 9A62 str r2, [r3, #40]
- 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 2639 .loc 1 1883 11
- 2640 008e FB68 ldr r3, [r7, #12]
- 2641 0090 5B6A ldr r3, [r3, #36]
- 2642 .loc 1 1883 21
- 2643 0092 5A1C adds r2, r3, #1
- 2644 0094 FB68 ldr r3, [r7, #12]
- 2645 0096 5A62 str r2, [r3, #36]
- 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 2646 .loc 1 1885 11
- 2647 0098 FB68 ldr r3, [r7, #12]
- 2648 009a 5B8D ldrh r3, [r3, #42] @ movhi
- 2649 009c 9BB2 uxth r3, r3
- 2650 .loc 1 1885 22
- 2651 009e 013B subs r3, r3, #1
- 2652 00a0 9AB2 uxth r2, r3
- 2653 00a2 FB68 ldr r3, [r7, #12]
- 2654 00a4 5A85 strh r2, [r3, #42] @ movhi
- 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 2655 .loc 1 1886 11
- 2656 00a6 FB68 ldr r3, [r7, #12]
- 2657 00a8 1B8D ldrh r3, [r3, #40]
- 2658 .loc 1 1886 21
- 2659 00aa 013B subs r3, r3, #1
- 2660 00ac 9AB2 uxth r2, r3
- 2661 00ae FB68 ldr r3, [r7, #12]
- 2662 00b0 1A85 strh r2, [r3, #40] @ movhi
- 2663 .L116:
- 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2664 .loc 1 1890 5
- 2665 00b2 FB68 ldr r3, [r7, #12]
- 2666 00b4 0022 movs r2, #0
- 2667 00b6 83F84020 strb r2, [r3, #64]
- 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 81
- 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
- 2668 .loc 1 1900 5
- 2669 00ba 48F20101 movw r1, #32769
- 2670 00be F868 ldr r0, [r7, #12]
- 2671 00c0 FFF7FEFF bl I2C_Enable_IRQ
- 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 2672 .loc 1 1902 12
- 2673 00c4 0023 movs r3, #0
- 2674 00c6 00E0 b .L115
- 2675 .L113:
- 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2676 .loc 1 1906 12
- 2677 00c8 0223 movs r3, #2
- 2678 .L115:
- 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2679 .loc 1 1908 1
- 2680 00ca 1846 mov r0, r3
- 2681 00cc 1037 adds r7, r7, #16
- 2682 .LCFI55:
- 2683 .cfi_def_cfa_offset 8
- 2684 00ce BD46 mov sp, r7
- 2685 .LCFI56:
- 2686 .cfi_def_cfa_register 13
- 2687 @ sp needed
- 2688 00d0 80BD pop {r7, pc}
- 2689 .L118:
- 2690 00d2 00BF .align 2
- 2691 .L117:
- 2692 00d4 0000FFFF .word -65536
- 2693 00d8 00000000 .word I2C_Slave_ISR_IT
- 2694 .cfi_endproc
- 2695 .LFE140:
- 2697 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
- 2698 .align 1
- 2699 .global HAL_I2C_Slave_Receive_IT
- 2700 .syntax unified
- 2701 .thumb
- 2702 .thumb_func
- 2704 HAL_I2C_Slave_Receive_IT:
- 2705 .LFB141:
- 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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)
- 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2706 .loc 1 1919 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 82
- 2707 .cfi_startproc
- 2708 @ args = 0, pretend = 0, frame = 16
- 2709 @ frame_needed = 1, uses_anonymous_args = 0
- 2710 0000 80B5 push {r7, lr}
- 2711 .LCFI57:
- 2712 .cfi_def_cfa_offset 8
- 2713 .cfi_offset 7, -8
- 2714 .cfi_offset 14, -4
- 2715 0002 84B0 sub sp, sp, #16
- 2716 .LCFI58:
- 2717 .cfi_def_cfa_offset 24
- 2718 0004 00AF add r7, sp, #0
- 2719 .LCFI59:
- 2720 .cfi_def_cfa_register 7
- 2721 0006 F860 str r0, [r7, #12]
- 2722 0008 B960 str r1, [r7, #8]
- 2723 000a 1346 mov r3, r2
- 2724 000c FB80 strh r3, [r7, #6] @ movhi
- 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 2725 .loc 1 1920 11
- 2726 000e FB68 ldr r3, [r7, #12]
- 2727 0010 93F84130 ldrb r3, [r3, #65]
- 2728 0014 DBB2 uxtb r3, r3
- 2729 .loc 1 1920 6
- 2730 0016 202B cmp r3, #32
- 2731 0018 39D1 bne .L120
- 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 2732 .loc 1 1923 5
- 2733 001a FB68 ldr r3, [r7, #12]
- 2734 001c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 2735 0020 012B cmp r3, #1
- 2736 0022 01D1 bne .L121
- 2737 .loc 1 1923 5 is_stmt 0 discriminator 1
- 2738 0024 0223 movs r3, #2
- 2739 0026 33E0 b .L122
- 2740 .L121:
- 2741 .loc 1 1923 5 discriminator 2
- 2742 0028 FB68 ldr r3, [r7, #12]
- 2743 002a 0122 movs r2, #1
- 2744 002c 83F84020 strb r2, [r3, #64]
- 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 2745 .loc 1 1925 23 is_stmt 1 discriminator 2
- 2746 0030 FB68 ldr r3, [r7, #12]
- 2747 0032 2222 movs r2, #34
- 2748 0034 83F84120 strb r2, [r3, #65]
- 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 2749 .loc 1 1926 23 discriminator 2
- 2750 0038 FB68 ldr r3, [r7, #12]
- 2751 003a 2022 movs r2, #32
- 2752 003c 83F84220 strb r2, [r3, #66]
- 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 2753 .loc 1 1927 23 discriminator 2
- 2754 0040 FB68 ldr r3, [r7, #12]
- 2755 0042 0022 movs r2, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 83
- 2756 0044 5A64 str r2, [r3, #68]
- 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 2757 .loc 1 1930 9 discriminator 2
- 2758 0046 FB68 ldr r3, [r7, #12]
- 2759 0048 1B68 ldr r3, [r3]
- 2760 .loc 1 1930 25 discriminator 2
- 2761 004a 5A68 ldr r2, [r3, #4]
- 2762 .loc 1 1930 9 discriminator 2
- 2763 004c FB68 ldr r3, [r7, #12]
- 2764 004e 1B68 ldr r3, [r3]
- 2765 .loc 1 1930 25 discriminator 2
- 2766 0050 22F40042 bic r2, r2, #32768
- 2767 0054 5A60 str r2, [r3, #4]
- 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 2768 .loc 1 1933 23 discriminator 2
- 2769 0056 FB68 ldr r3, [r7, #12]
- 2770 0058 BA68 ldr r2, [r7, #8]
- 2771 005a 5A62 str r2, [r3, #36]
- 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 2772 .loc 1 1934 23 discriminator 2
- 2773 005c FB68 ldr r3, [r7, #12]
- 2774 005e FA88 ldrh r2, [r7, #6] @ movhi
- 2775 0060 5A85 strh r2, [r3, #42] @ movhi
- 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 2776 .loc 1 1935 29 discriminator 2
- 2777 0062 FB68 ldr r3, [r7, #12]
- 2778 0064 5B8D ldrh r3, [r3, #42] @ movhi
- 2779 0066 9AB2 uxth r2, r3
- 2780 .loc 1 1935 23 discriminator 2
- 2781 0068 FB68 ldr r3, [r7, #12]
- 2782 006a 1A85 strh r2, [r3, #40] @ movhi
- 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 2783 .loc 1 1936 23 discriminator 2
- 2784 006c FB68 ldr r3, [r7, #12]
- 2785 006e 0A4A ldr r2, .L123
- 2786 0070 DA62 str r2, [r3, #44]
- 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
- 2787 .loc 1 1937 23 discriminator 2
- 2788 0072 FB68 ldr r3, [r7, #12]
- 2789 0074 094A ldr r2, .L123+4
- 2790 0076 5A63 str r2, [r3, #52]
- 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2791 .loc 1 1940 5 discriminator 2
- 2792 0078 FB68 ldr r3, [r7, #12]
- 2793 007a 0022 movs r2, #0
- 2794 007c 83F84020 strb r2, [r3, #64]
- 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 84
- 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
- 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
- 2795 .loc 1 1950 5 discriminator 2
- 2796 0080 48F20201 movw r1, #32770
- 2797 0084 F868 ldr r0, [r7, #12]
- 2798 0086 FFF7FEFF bl I2C_Enable_IRQ
- 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 2799 .loc 1 1952 12 discriminator 2
- 2800 008a 0023 movs r3, #0
- 2801 008c 00E0 b .L122
- 2802 .L120:
- 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2803 .loc 1 1956 12
- 2804 008e 0223 movs r3, #2
- 2805 .L122:
- 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2806 .loc 1 1958 1
- 2807 0090 1846 mov r0, r3
- 2808 0092 1037 adds r7, r7, #16
- 2809 .LCFI60:
- 2810 .cfi_def_cfa_offset 8
- 2811 0094 BD46 mov sp, r7
- 2812 .LCFI61:
- 2813 .cfi_def_cfa_register 13
- 2814 @ sp needed
- 2815 0096 80BD pop {r7, pc}
- 2816 .L124:
- 2817 .align 2
- 2818 .L123:
- 2819 0098 0000FFFF .word -65536
- 2820 009c 00000000 .word I2C_Slave_ISR_IT
- 2821 .cfi_endproc
- 2822 .LFE141:
- 2824 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
- 2825 .align 1
- 2826 .global HAL_I2C_Master_Transmit_DMA
- 2827 .syntax unified
- 2828 .thumb
- 2829 .thumb_func
- 2831 HAL_I2C_Master_Transmit_DMA:
- 2832 .LFB142:
- 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 85
- 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
- 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2833 .loc 1 1972 1
- 2834 .cfi_startproc
- 2835 @ args = 0, pretend = 0, frame = 32
- 2836 @ frame_needed = 1, uses_anonymous_args = 0
- 2837 0000 80B5 push {r7, lr}
- 2838 .LCFI62:
- 2839 .cfi_def_cfa_offset 8
- 2840 .cfi_offset 7, -8
- 2841 .cfi_offset 14, -4
- 2842 0002 8AB0 sub sp, sp, #40
- 2843 .LCFI63:
- 2844 .cfi_def_cfa_offset 48
- 2845 0004 02AF add r7, sp, #8
- 2846 .LCFI64:
- 2847 .cfi_def_cfa 7, 40
- 2848 0006 F860 str r0, [r7, #12]
- 2849 0008 7A60 str r2, [r7, #4]
- 2850 000a 1A46 mov r2, r3
- 2851 000c 0B46 mov r3, r1 @ movhi
- 2852 000e 7B81 strh r3, [r7, #10] @ movhi
- 2853 0010 1346 mov r3, r2 @ movhi
- 2854 0012 3B81 strh r3, [r7, #8] @ movhi
- 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
- 2855 .loc 1 1975 12
- 2856 0014 0023 movs r3, #0
- 2857 0016 BB61 str r3, [r7, #24]
- 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 2858 .loc 1 1977 11
- 2859 0018 FB68 ldr r3, [r7, #12]
- 2860 001a 93F84130 ldrb r3, [r3, #65]
- 2861 001e DBB2 uxtb r3, r3
- 2862 .loc 1 1977 6
- 2863 0020 202B cmp r3, #32
- 2864 0022 40F0EF80 bne .L126
- 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 2865 .loc 1 1979 9
- 2866 0026 FB68 ldr r3, [r7, #12]
- 2867 0028 1B68 ldr r3, [r3]
- 2868 002a 9B69 ldr r3, [r3, #24]
- 2869 002c 03F40043 and r3, r3, #32768
- 2870 .loc 1 1979 8
- 2871 0030 B3F5004F cmp r3, #32768
- 2872 0034 01D1 bne .L127
- 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 2873 .loc 1 1981 14
- 2874 0036 0223 movs r3, #2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 86
- 2875 0038 E5E0 b .L128
- 2876 .L127:
- 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 2877 .loc 1 1985 5
- 2878 003a FB68 ldr r3, [r7, #12]
- 2879 003c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 2880 0040 012B cmp r3, #1
- 2881 0042 01D1 bne .L129
- 2882 .loc 1 1985 5 is_stmt 0 discriminator 1
- 2883 0044 0223 movs r3, #2
- 2884 0046 DEE0 b .L128
- 2885 .L129:
- 2886 .loc 1 1985 5 discriminator 2
- 2887 0048 FB68 ldr r3, [r7, #12]
- 2888 004a 0122 movs r2, #1
- 2889 004c 83F84020 strb r2, [r3, #64]
- 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 2890 .loc 1 1987 23 is_stmt 1 discriminator 2
- 2891 0050 FB68 ldr r3, [r7, #12]
- 2892 0052 2122 movs r2, #33
- 2893 0054 83F84120 strb r2, [r3, #65]
- 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 2894 .loc 1 1988 23 discriminator 2
- 2895 0058 FB68 ldr r3, [r7, #12]
- 2896 005a 1022 movs r2, #16
- 2897 005c 83F84220 strb r2, [r3, #66]
- 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 2898 .loc 1 1989 23 discriminator 2
- 2899 0060 FB68 ldr r3, [r7, #12]
- 2900 0062 0022 movs r2, #0
- 2901 0064 5A64 str r2, [r3, #68]
- 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 2902 .loc 1 1992 23 discriminator 2
- 2903 0066 FB68 ldr r3, [r7, #12]
- 2904 0068 7A68 ldr r2, [r7, #4]
- 2905 006a 5A62 str r2, [r3, #36]
- 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 2906 .loc 1 1993 23 discriminator 2
- 2907 006c FB68 ldr r3, [r7, #12]
- 2908 006e 3A89 ldrh r2, [r7, #8] @ movhi
- 2909 0070 5A85 strh r2, [r3, #42] @ movhi
- 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 2910 .loc 1 1994 23 discriminator 2
- 2911 0072 FB68 ldr r3, [r7, #12]
- 2912 0074 664A ldr r2, .L139
- 2913 0076 DA62 str r2, [r3, #44]
- 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
- 2914 .loc 1 1995 23 discriminator 2
- 2915 0078 FB68 ldr r3, [r7, #12]
- 2916 007a 664A ldr r2, .L139+4
- 2917 007c 5A63 str r2, [r3, #52]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 87
- 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 2918 .loc 1 1997 13 discriminator 2
- 2919 007e FB68 ldr r3, [r7, #12]
- 2920 0080 5B8D ldrh r3, [r3, #42] @ movhi
- 2921 0082 9BB2 uxth r3, r3
- 2922 .loc 1 1997 8 discriminator 2
- 2923 0084 FF2B cmp r3, #255
- 2924 0086 06D9 bls .L130
- 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 2925 .loc 1 1999 22
- 2926 0088 FB68 ldr r3, [r7, #12]
- 2927 008a FF22 movs r2, #255
- 2928 008c 1A85 strh r2, [r3, #40] @ movhi
- 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 2929 .loc 1 2000 16
- 2930 008e 4FF08073 mov r3, #16777216
- 2931 0092 FB61 str r3, [r7, #28]
- 2932 0094 07E0 b .L131
- 2933 .L130:
- 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 2934 .loc 1 2004 28
- 2935 0096 FB68 ldr r3, [r7, #12]
- 2936 0098 5B8D ldrh r3, [r3, #42] @ movhi
- 2937 009a 9AB2 uxth r2, r3
- 2938 .loc 1 2004 22
- 2939 009c FB68 ldr r3, [r7, #12]
- 2940 009e 1A85 strh r2, [r3, #40] @ movhi
- 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
- 2941 .loc 1 2005 16
- 2942 00a0 4FF00073 mov r3, #33554432
- 2943 00a4 FB61 str r3, [r7, #28]
- 2944 .L131:
- 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 2945 .loc 1 2008 13
- 2946 00a6 FB68 ldr r3, [r7, #12]
- 2947 00a8 1B8D ldrh r3, [r3, #40]
- 2948 .loc 1 2008 8
- 2949 00aa 002B cmp r3, #0
- 2950 00ac 1AD0 beq .L132
- 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 2951 .loc 1 2012 35
- 2952 00ae FB68 ldr r3, [r7, #12]
- 2953 00b0 5B6A ldr r3, [r3, #36]
- 2954 .loc 1 2012 30
- 2955 00b2 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 2956 .loc 1 2012 11
- 2957 00b4 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 88
- 2958 00b6 1B68 ldr r3, [r3]
- 2959 .loc 1 2012 28
- 2960 00b8 9A62 str r2, [r3, #40]
- 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 2961 .loc 1 2015 11
- 2962 00ba FB68 ldr r3, [r7, #12]
- 2963 00bc 5B6A ldr r3, [r3, #36]
- 2964 .loc 1 2015 21
- 2965 00be 5A1C adds r2, r3, #1
- 2966 00c0 FB68 ldr r3, [r7, #12]
- 2967 00c2 5A62 str r2, [r3, #36]
- 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
- 2968 .loc 1 2017 24
- 2969 00c4 FB68 ldr r3, [r7, #12]
- 2970 00c6 1B8D ldrh r3, [r3, #40]
- 2971 .loc 1 2017 18
- 2972 00c8 BB61 str r3, [r7, #24]
- 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 2973 .loc 1 2018 11
- 2974 00ca FB68 ldr r3, [r7, #12]
- 2975 00cc 5B8D ldrh r3, [r3, #42] @ movhi
- 2976 00ce 9BB2 uxth r3, r3
- 2977 .loc 1 2018 22
- 2978 00d0 013B subs r3, r3, #1
- 2979 00d2 9AB2 uxth r2, r3
- 2980 00d4 FB68 ldr r3, [r7, #12]
- 2981 00d6 5A85 strh r2, [r3, #42] @ movhi
- 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 2982 .loc 1 2019 11
- 2983 00d8 FB68 ldr r3, [r7, #12]
- 2984 00da 1B8D ldrh r3, [r3, #40]
- 2985 .loc 1 2019 21
- 2986 00dc 013B subs r3, r3, #1
- 2987 00de 9AB2 uxth r2, r3
- 2988 00e0 FB68 ldr r3, [r7, #12]
- 2989 00e2 1A85 strh r2, [r3, #40] @ movhi
- 2990 .L132:
- 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 2991 .loc 1 2022 13
- 2992 00e4 FB68 ldr r3, [r7, #12]
- 2993 00e6 1B8D ldrh r3, [r3, #40]
- 2994 .loc 1 2022 8
- 2995 00e8 002B cmp r3, #0
- 2996 00ea 74D0 beq .L133
- 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 2997 .loc 1 2024 15
- 2998 00ec FB68 ldr r3, [r7, #12]
- 2999 00ee 9B6B ldr r3, [r3, #56]
- 3000 .loc 1 2024 10
- 3001 00f0 002B cmp r3, #0
- 3002 00f2 22D0 beq .L134
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 89
- 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
- 3003 .loc 1 2027 13
- 3004 00f4 FB68 ldr r3, [r7, #12]
- 3005 00f6 9B6B ldr r3, [r3, #56]
- 3006 .loc 1 2027 40
- 3007 00f8 474A ldr r2, .L139+8
- 3008 00fa 9A62 str r2, [r3, #40]
- 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
- 3009 .loc 1 2030 13
- 3010 00fc FB68 ldr r3, [r7, #12]
- 3011 00fe 9B6B ldr r3, [r3, #56]
- 3012 .loc 1 2030 41
- 3013 0100 464A ldr r2, .L139+12
- 3014 0102 1A63 str r2, [r3, #48]
- 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
- 3015 .loc 1 2033 13
- 3016 0104 FB68 ldr r3, [r7, #12]
- 3017 0106 9B6B ldr r3, [r3, #56]
- 3018 .loc 1 2033 44
- 3019 0108 0022 movs r2, #0
- 3020 010a DA62 str r2, [r3, #44]
- 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
- 3021 .loc 1 2034 13
- 3022 010c FB68 ldr r3, [r7, #12]
- 3023 010e 9B6B ldr r3, [r3, #56]
- 3024 .loc 1 2034 41
- 3025 0110 0022 movs r2, #0
- 3026 0112 5A63 str r2, [r3, #52]
- 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
- 3027 .loc 1 2037 25
- 3028 0114 FB68 ldr r3, [r7, #12]
- 3029 0116 986B ldr r0, [r3, #56]
- 3030 .loc 1 2037 70
- 3031 0118 FB68 ldr r3, [r7, #12]
- 3032 011a 5B6A ldr r3, [r3, #36]
- 3033 .loc 1 2037 25
- 3034 011c 1946 mov r1, r3
- 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
- 3035 .loc 1 2038 57
- 3036 011e FB68 ldr r3, [r7, #12]
- 3037 0120 1B68 ldr r3, [r3]
- 3038 .loc 1 2038 52
- 3039 0122 2833 adds r3, r3, #40
- 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
- 3040 .loc 1 2037 25
- 3041 0124 1A46 mov r2, r3
- 3042 .loc 1 2038 79
- 3043 0126 FB68 ldr r3, [r7, #12]
- 3044 0128 1B8D ldrh r3, [r3, #40]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 90
- 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
- 3045 .loc 1 2037 25
- 3046 012a FFF7FEFF bl HAL_DMA_Start_IT
- 3047 012e 0346 mov r3, r0
- 3048 0130 FB75 strb r3, [r7, #23]
- 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 3049 .loc 1 2055 10
- 3050 0132 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 3051 0134 002B cmp r3, #0
- 3052 0136 3AD1 bne .L136
- 3053 0138 13E0 b .L138
- 3054 .L134:
- 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3055 .loc 1 2043 25
- 3056 013a FB68 ldr r3, [r7, #12]
- 3057 013c 2022 movs r2, #32
- 3058 013e 83F84120 strb r2, [r3, #65]
- 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3059 .loc 1 2044 25
- 3060 0142 FB68 ldr r3, [r7, #12]
- 3061 0144 0022 movs r2, #0
- 3062 0146 83F84220 strb r2, [r3, #66]
- 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3063 .loc 1 2047 25
- 3064 014a FB68 ldr r3, [r7, #12]
- 3065 014c 5B6C ldr r3, [r3, #68]
- 3066 014e 43F08002 orr r2, r3, #128
- 3067 0152 FB68 ldr r3, [r7, #12]
- 3068 0154 5A64 str r2, [r3, #68]
- 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3069 .loc 1 2050 9
- 3070 0156 FB68 ldr r3, [r7, #12]
- 3071 0158 0022 movs r2, #0
- 3072 015a 83F84020 strb r2, [r3, #64]
- 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3073 .loc 1 2052 16
- 3074 015e 0123 movs r3, #1
- 3075 0160 51E0 b .L128
- 3076 .L138:
- 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 91
- 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
- 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U),
- 3077 .loc 1 2059 60
- 3078 0162 FB68 ldr r3, [r7, #12]
- 3079 0164 1B8D ldrh r3, [r3, #40]
- 3080 .loc 1 2059 9
- 3081 0166 DBB2 uxtb r3, r3
- 3082 0168 0133 adds r3, r3, #1
- 3083 016a DAB2 uxtb r2, r3
- 3084 016c 7989 ldrh r1, [r7, #10]
- 3085 016e 2C4B ldr r3, .L139+16
- 3086 0170 0093 str r3, [sp]
- 3087 0172 FB69 ldr r3, [r7, #28]
- 3088 0174 F868 ldr r0, [r7, #12]
- 3089 0176 FFF7FEFF bl I2C_TransferConfig
- 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
- 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 3090 .loc 1 2063 25
- 3091 017a FB68 ldr r3, [r7, #12]
- 3092 017c 5B8D ldrh r3, [r3, #42] @ movhi
- 3093 017e 9AB2 uxth r2, r3
- 3094 .loc 1 2063 32
- 3095 0180 FB68 ldr r3, [r7, #12]
- 3096 0182 1B8D ldrh r3, [r3, #40]
- 3097 .loc 1 2063 25
- 3098 0184 D31A subs r3, r2, r3
- 3099 0186 9AB2 uxth r2, r3
- 3100 0188 FB68 ldr r3, [r7, #12]
- 3101 018a 5A85 strh r2, [r3, #42] @ movhi
- 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3102 .loc 1 2066 9
- 3103 018c FB68 ldr r3, [r7, #12]
- 3104 018e 0022 movs r2, #0
- 3105 0190 83F84020 strb r2, [r3, #64]
- 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
- 3106 .loc 1 2072 9
- 3107 0194 1021 movs r1, #16
- 3108 0196 F868 ldr r0, [r7, #12]
- 3109 0198 FFF7FEFF bl I2C_Enable_IRQ
- 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 3110 .loc 1 2075 13
- 3111 019c FB68 ldr r3, [r7, #12]
- 3112 019e 1B68 ldr r3, [r3]
- 3113 .loc 1 2075 29
- 3114 01a0 1A68 ldr r2, [r3]
- 3115 .loc 1 2075 13
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 92
- 3116 01a2 FB68 ldr r3, [r7, #12]
- 3117 01a4 1B68 ldr r3, [r3]
- 3118 .loc 1 2075 29
- 3119 01a6 42F48042 orr r2, r2, #16384
- 3120 01aa 1A60 str r2, [r3]
- 3121 01ac 28E0 b .L137
- 3122 .L136:
- 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3123 .loc 1 2080 25
- 3124 01ae FB68 ldr r3, [r7, #12]
- 3125 01b0 2022 movs r2, #32
- 3126 01b2 83F84120 strb r2, [r3, #65]
- 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3127 .loc 1 2081 25
- 3128 01b6 FB68 ldr r3, [r7, #12]
- 3129 01b8 0022 movs r2, #0
- 3130 01ba 83F84220 strb r2, [r3, #66]
- 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 3131 .loc 1 2084 25
- 3132 01be FB68 ldr r3, [r7, #12]
- 3133 01c0 5B6C ldr r3, [r3, #68]
- 3134 01c2 43F01002 orr r2, r3, #16
- 3135 01c6 FB68 ldr r3, [r7, #12]
- 3136 01c8 5A64 str r2, [r3, #68]
- 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3137 .loc 1 2087 9
- 3138 01ca FB68 ldr r3, [r7, #12]
- 3139 01cc 0022 movs r2, #0
- 3140 01ce 83F84020 strb r2, [r3, #64]
- 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3141 .loc 1 2089 16
- 3142 01d2 0123 movs r3, #1
- 3143 01d4 17E0 b .L128
- 3144 .L133:
- 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
- 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 3145 .loc 1 2095 21
- 3146 01d6 FB68 ldr r3, [r7, #12]
- 3147 01d8 124A ldr r2, .L139+20
- 3148 01da 5A63 str r2, [r3, #52]
- 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
- 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE,
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 93
- 3149 .loc 1 2099 7
- 3150 01dc BB69 ldr r3, [r7, #24]
- 3151 01de DAB2 uxtb r2, r3
- 3152 01e0 7989 ldrh r1, [r7, #10]
- 3153 01e2 0F4B ldr r3, .L139+16
- 3154 01e4 0093 str r3, [sp]
- 3155 01e6 4FF00073 mov r3, #33554432
- 3156 01ea F868 ldr r0, [r7, #12]
- 3157 01ec FFF7FEFF bl I2C_TransferConfig
- 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
- 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3158 .loc 1 2103 7
- 3159 01f0 FB68 ldr r3, [r7, #12]
- 3160 01f2 0022 movs r2, #0
- 3161 01f4 83F84020 strb r2, [r3, #64]
- 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 3162 .loc 1 2112 7
- 3163 01f8 0121 movs r1, #1
- 3164 01fa F868 ldr r0, [r7, #12]
- 3165 01fc FFF7FEFF bl I2C_Enable_IRQ
- 3166 .L137:
- 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 3167 .loc 1 2115 12
- 3168 0200 0023 movs r3, #0
- 3169 0202 00E0 b .L128
- 3170 .L126:
- 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 3171 .loc 1 2119 12
- 3172 0204 0223 movs r3, #2
- 3173 .L128:
- 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3174 .loc 1 2121 1
- 3175 0206 1846 mov r0, r3
- 3176 0208 2037 adds r7, r7, #32
- 3177 .LCFI65:
- 3178 .cfi_def_cfa_offset 8
- 3179 020a BD46 mov sp, r7
- 3180 .LCFI66:
- 3181 .cfi_def_cfa_register 13
- 3182 @ sp needed
- 3183 020c 80BD pop {r7, pc}
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 94
- 3184 .L140:
- 3185 020e 00BF .align 2
- 3186 .L139:
- 3187 0210 0000FFFF .word -65536
- 3188 0214 00000000 .word I2C_Master_ISR_DMA
- 3189 0218 00000000 .word I2C_DMAMasterTransmitCplt
- 3190 021c 00000000 .word I2C_DMAError
- 3191 0220 00200080 .word -2147475456
- 3192 0224 00000000 .word I2C_Master_ISR_IT
- 3193 .cfi_endproc
- 3194 .LFE142:
- 3196 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
- 3197 .align 1
- 3198 .global HAL_I2C_Master_Receive_DMA
- 3199 .syntax unified
- 3200 .thumb
- 3201 .thumb_func
- 3203 HAL_I2C_Master_Receive_DMA:
- 3204 .LFB143:
- 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
- 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3205 .loc 1 2135 1
- 3206 .cfi_startproc
- 3207 @ args = 0, pretend = 0, frame = 24
- 3208 @ frame_needed = 1, uses_anonymous_args = 0
- 3209 0000 80B5 push {r7, lr}
- 3210 .LCFI67:
- 3211 .cfi_def_cfa_offset 8
- 3212 .cfi_offset 7, -8
- 3213 .cfi_offset 14, -4
- 3214 0002 88B0 sub sp, sp, #32
- 3215 .LCFI68:
- 3216 .cfi_def_cfa_offset 40
- 3217 0004 02AF add r7, sp, #8
- 3218 .LCFI69:
- 3219 .cfi_def_cfa 7, 32
- 3220 0006 F860 str r0, [r7, #12]
- 3221 0008 7A60 str r2, [r7, #4]
- 3222 000a 1A46 mov r2, r3
- 3223 000c 0B46 mov r3, r1 @ movhi
- 3224 000e 7B81 strh r3, [r7, #10] @ movhi
- 3225 0010 1346 mov r3, r2 @ movhi
- 3226 0012 3B81 strh r3, [r7, #8] @ movhi
- 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 95
- 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 3227 .loc 1 2139 11
- 3228 0014 FB68 ldr r3, [r7, #12]
- 3229 0016 93F84130 ldrb r3, [r3, #65]
- 3230 001a DBB2 uxtb r3, r3
- 3231 .loc 1 2139 6
- 3232 001c 202B cmp r3, #32
- 3233 001e 40F0CD80 bne .L142
- 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 3234 .loc 1 2141 9
- 3235 0022 FB68 ldr r3, [r7, #12]
- 3236 0024 1B68 ldr r3, [r3]
- 3237 0026 9B69 ldr r3, [r3, #24]
- 3238 0028 03F40043 and r3, r3, #32768
- 3239 .loc 1 2141 8
- 3240 002c B3F5004F cmp r3, #32768
- 3241 0030 01D1 bne .L143
- 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 3242 .loc 1 2143 14
- 3243 0032 0223 movs r3, #2
- 3244 0034 C3E0 b .L144
- 3245 .L143:
- 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 3246 .loc 1 2147 5
- 3247 0036 FB68 ldr r3, [r7, #12]
- 3248 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 3249 003c 012B cmp r3, #1
- 3250 003e 01D1 bne .L145
- 3251 .loc 1 2147 5 is_stmt 0 discriminator 1
- 3252 0040 0223 movs r3, #2
- 3253 0042 BCE0 b .L144
- 3254 .L145:
- 3255 .loc 1 2147 5 discriminator 2
- 3256 0044 FB68 ldr r3, [r7, #12]
- 3257 0046 0122 movs r2, #1
- 3258 0048 83F84020 strb r2, [r3, #64]
- 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 3259 .loc 1 2149 23 is_stmt 1 discriminator 2
- 3260 004c FB68 ldr r3, [r7, #12]
- 3261 004e 2222 movs r2, #34
- 3262 0050 83F84120 strb r2, [r3, #65]
- 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 3263 .loc 1 2150 23 discriminator 2
- 3264 0054 FB68 ldr r3, [r7, #12]
- 3265 0056 1022 movs r2, #16
- 3266 0058 83F84220 strb r2, [r3, #66]
- 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 3267 .loc 1 2151 23 discriminator 2
- 3268 005c FB68 ldr r3, [r7, #12]
- 3269 005e 0022 movs r2, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 96
- 3270 0060 5A64 str r2, [r3, #68]
- 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 3271 .loc 1 2154 23 discriminator 2
- 3272 0062 FB68 ldr r3, [r7, #12]
- 3273 0064 7A68 ldr r2, [r7, #4]
- 3274 0066 5A62 str r2, [r3, #36]
- 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 3275 .loc 1 2155 23 discriminator 2
- 3276 0068 FB68 ldr r3, [r7, #12]
- 3277 006a 3A89 ldrh r2, [r7, #8] @ movhi
- 3278 006c 5A85 strh r2, [r3, #42] @ movhi
- 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 3279 .loc 1 2156 23 discriminator 2
- 3280 006e FB68 ldr r3, [r7, #12]
- 3281 0070 554A ldr r2, .L154
- 3282 0072 DA62 str r2, [r3, #44]
- 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
- 3283 .loc 1 2157 23 discriminator 2
- 3284 0074 FB68 ldr r3, [r7, #12]
- 3285 0076 554A ldr r2, .L154+4
- 3286 0078 5A63 str r2, [r3, #52]
- 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 3287 .loc 1 2159 13 discriminator 2
- 3288 007a FB68 ldr r3, [r7, #12]
- 3289 007c 5B8D ldrh r3, [r3, #42] @ movhi
- 3290 007e 9BB2 uxth r3, r3
- 3291 .loc 1 2159 8 discriminator 2
- 3292 0080 FF2B cmp r3, #255
- 3293 0082 06D9 bls .L146
- 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 3294 .loc 1 2161 22
- 3295 0084 FB68 ldr r3, [r7, #12]
- 3296 0086 0122 movs r2, #1
- 3297 0088 1A85 strh r2, [r3, #40] @ movhi
- 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 3298 .loc 1 2162 16
- 3299 008a 4FF08073 mov r3, #16777216
- 3300 008e 7B61 str r3, [r7, #20]
- 3301 0090 07E0 b .L147
- 3302 .L146:
- 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 3303 .loc 1 2166 28
- 3304 0092 FB68 ldr r3, [r7, #12]
- 3305 0094 5B8D ldrh r3, [r3, #42] @ movhi
- 3306 0096 9AB2 uxth r2, r3
- 3307 .loc 1 2166 22
- 3308 0098 FB68 ldr r3, [r7, #12]
- 3309 009a 1A85 strh r2, [r3, #40] @ movhi
- 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
- 3310 .loc 1 2167 16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 97
- 3311 009c 4FF00073 mov r3, #33554432
- 3312 00a0 7B61 str r3, [r7, #20]
- 3313 .L147:
- 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 3314 .loc 1 2170 13
- 3315 00a2 FB68 ldr r3, [r7, #12]
- 3316 00a4 1B8D ldrh r3, [r3, #40]
- 3317 .loc 1 2170 8
- 3318 00a6 002B cmp r3, #0
- 3319 00a8 70D0 beq .L148
- 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 3320 .loc 1 2172 15
- 3321 00aa FB68 ldr r3, [r7, #12]
- 3322 00ac DB6B ldr r3, [r3, #60]
- 3323 .loc 1 2172 10
- 3324 00ae 002B cmp r3, #0
- 3325 00b0 20D0 beq .L149
- 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
- 3326 .loc 1 2175 13
- 3327 00b2 FB68 ldr r3, [r7, #12]
- 3328 00b4 DB6B ldr r3, [r3, #60]
- 3329 .loc 1 2175 40
- 3330 00b6 464A ldr r2, .L154+8
- 3331 00b8 9A62 str r2, [r3, #40]
- 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
- 3332 .loc 1 2178 13
- 3333 00ba FB68 ldr r3, [r7, #12]
- 3334 00bc DB6B ldr r3, [r3, #60]
- 3335 .loc 1 2178 41
- 3336 00be 454A ldr r2, .L154+12
- 3337 00c0 1A63 str r2, [r3, #48]
- 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
- 3338 .loc 1 2181 13
- 3339 00c2 FB68 ldr r3, [r7, #12]
- 3340 00c4 DB6B ldr r3, [r3, #60]
- 3341 .loc 1 2181 44
- 3342 00c6 0022 movs r2, #0
- 3343 00c8 DA62 str r2, [r3, #44]
- 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
- 3344 .loc 1 2182 13
- 3345 00ca FB68 ldr r3, [r7, #12]
- 3346 00cc DB6B ldr r3, [r3, #60]
- 3347 .loc 1 2182 41
- 3348 00ce 0022 movs r2, #0
- 3349 00d0 5A63 str r2, [r3, #52]
- 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 98
- 3350 .loc 1 2185 25
- 3351 00d2 FB68 ldr r3, [r7, #12]
- 3352 00d4 D86B ldr r0, [r3, #60]
- 3353 .loc 1 2185 71
- 3354 00d6 FB68 ldr r3, [r7, #12]
- 3355 00d8 1B68 ldr r3, [r3]
- 3356 .loc 1 2185 66
- 3357 00da 2433 adds r3, r3, #36
- 3358 .loc 1 2185 25
- 3359 00dc 1946 mov r1, r3
- 3360 00de 7A68 ldr r2, [r7, #4]
- 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 3361 .loc 1 2186 46
- 3362 00e0 FB68 ldr r3, [r7, #12]
- 3363 00e2 1B8D ldrh r3, [r3, #40]
- 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 3364 .loc 1 2185 25
- 3365 00e4 FFF7FEFF bl HAL_DMA_Start_IT
- 3366 00e8 0346 mov r3, r0
- 3367 00ea FB74 strb r3, [r7, #19]
- 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 3368 .loc 1 2203 10
- 3369 00ec FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
- 3370 00ee 002B cmp r3, #0
- 3371 00f0 38D1 bne .L151
- 3372 00f2 13E0 b .L153
- 3373 .L149:
- 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3374 .loc 1 2191 25
- 3375 00f4 FB68 ldr r3, [r7, #12]
- 3376 00f6 2022 movs r2, #32
- 3377 00f8 83F84120 strb r2, [r3, #65]
- 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3378 .loc 1 2192 25
- 3379 00fc FB68 ldr r3, [r7, #12]
- 3380 00fe 0022 movs r2, #0
- 3381 0100 83F84220 strb r2, [r3, #66]
- 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3382 .loc 1 2195 25
- 3383 0104 FB68 ldr r3, [r7, #12]
- 3384 0106 5B6C ldr r3, [r3, #68]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 99
- 3385 0108 43F08002 orr r2, r3, #128
- 3386 010c FB68 ldr r3, [r7, #12]
- 3387 010e 5A64 str r2, [r3, #68]
- 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3388 .loc 1 2198 9
- 3389 0110 FB68 ldr r3, [r7, #12]
- 3390 0112 0022 movs r2, #0
- 3391 0114 83F84020 strb r2, [r3, #64]
- 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3392 .loc 1 2200 16
- 3393 0118 0123 movs r3, #1
- 3394 011a 50E0 b .L144
- 3395 .L153:
- 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 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 *
- 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
- 3396 .loc 1 2207 59
- 3397 011c FB68 ldr r3, [r7, #12]
- 3398 011e 1B8D ldrh r3, [r3, #40]
- 3399 .loc 1 2207 9
- 3400 0120 DAB2 uxtb r2, r3
- 3401 0122 7989 ldrh r1, [r7, #10]
- 3402 0124 2C4B ldr r3, .L154+16
- 3403 0126 0093 str r3, [sp]
- 3404 0128 7B69 ldr r3, [r7, #20]
- 3405 012a F868 ldr r0, [r7, #12]
- 3406 012c FFF7FEFF bl I2C_TransferConfig
- 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 3407 .loc 1 2210 25
- 3408 0130 FB68 ldr r3, [r7, #12]
- 3409 0132 5B8D ldrh r3, [r3, #42] @ movhi
- 3410 0134 9AB2 uxth r2, r3
- 3411 .loc 1 2210 32
- 3412 0136 FB68 ldr r3, [r7, #12]
- 3413 0138 1B8D ldrh r3, [r3, #40]
- 3414 .loc 1 2210 25
- 3415 013a D31A subs r3, r2, r3
- 3416 013c 9AB2 uxth r2, r3
- 3417 013e FB68 ldr r3, [r7, #12]
- 3418 0140 5A85 strh r2, [r3, #42] @ movhi
- 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3419 .loc 1 2213 9
- 3420 0142 FB68 ldr r3, [r7, #12]
- 3421 0144 0022 movs r2, #0
- 3422 0146 83F84020 strb r2, [r3, #64]
- 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
- 3423 .loc 1 2219 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 100
- 3424 014a 1021 movs r1, #16
- 3425 014c F868 ldr r0, [r7, #12]
- 3426 014e FFF7FEFF bl I2C_Enable_IRQ
- 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 3427 .loc 1 2222 13
- 3428 0152 FB68 ldr r3, [r7, #12]
- 3429 0154 1B68 ldr r3, [r3]
- 3430 .loc 1 2222 29
- 3431 0156 1A68 ldr r2, [r3]
- 3432 .loc 1 2222 13
- 3433 0158 FB68 ldr r3, [r7, #12]
- 3434 015a 1B68 ldr r3, [r3]
- 3435 .loc 1 2222 29
- 3436 015c 42F40042 orr r2, r2, #32768
- 3437 0160 1A60 str r2, [r3]
- 3438 0162 29E0 b .L152
- 3439 .L151:
- 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3440 .loc 1 2227 25
- 3441 0164 FB68 ldr r3, [r7, #12]
- 3442 0166 2022 movs r2, #32
- 3443 0168 83F84120 strb r2, [r3, #65]
- 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3444 .loc 1 2228 25
- 3445 016c FB68 ldr r3, [r7, #12]
- 3446 016e 0022 movs r2, #0
- 3447 0170 83F84220 strb r2, [r3, #66]
- 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 3448 .loc 1 2231 25
- 3449 0174 FB68 ldr r3, [r7, #12]
- 3450 0176 5B6C ldr r3, [r3, #68]
- 3451 0178 43F01002 orr r2, r3, #16
- 3452 017c FB68 ldr r3, [r7, #12]
- 3453 017e 5A64 str r2, [r3, #68]
- 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3454 .loc 1 2234 9
- 3455 0180 FB68 ldr r3, [r7, #12]
- 3456 0182 0022 movs r2, #0
- 3457 0184 83F84020 strb r2, [r3, #64]
- 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3458 .loc 1 2236 16
- 3459 0188 0123 movs r3, #1
- 3460 018a 18E0 b .L144
- 3461 .L148:
- 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 101
- 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
- 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 3462 .loc 1 2242 21
- 3463 018c FB68 ldr r3, [r7, #12]
- 3464 018e 134A ldr r2, .L154+20
- 3465 0190 5A63 str r2, [r3, #52]
- 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
- 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 3466 .loc 1 2246 57
- 3467 0192 FB68 ldr r3, [r7, #12]
- 3468 0194 1B8D ldrh r3, [r3, #40]
- 3469 .loc 1 2246 7
- 3470 0196 DAB2 uxtb r2, r3
- 3471 0198 7989 ldrh r1, [r7, #10]
- 3472 019a 0F4B ldr r3, .L154+16
- 3473 019c 0093 str r3, [sp]
- 3474 019e 4FF00073 mov r3, #33554432
- 3475 01a2 F868 ldr r0, [r7, #12]
- 3476 01a4 FFF7FEFF bl I2C_TransferConfig
- 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
- 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3477 .loc 1 2250 7
- 3478 01a8 FB68 ldr r3, [r7, #12]
- 3479 01aa 0022 movs r2, #0
- 3480 01ac 83F84020 strb r2, [r3, #64]
- 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
- 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
- 3481 .loc 1 2259 7
- 3482 01b0 0221 movs r1, #2
- 3483 01b2 F868 ldr r0, [r7, #12]
- 3484 01b4 FFF7FEFF bl I2C_Enable_IRQ
- 3485 .L152:
- 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 3486 .loc 1 2262 12
- 3487 01b8 0023 movs r3, #0
- 3488 01ba 00E0 b .L144
- 3489 .L142:
- 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 3490 .loc 1 2266 12
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 102
- 3491 01bc 0223 movs r3, #2
- 3492 .L144:
- 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3493 .loc 1 2268 1
- 3494 01be 1846 mov r0, r3
- 3495 01c0 1837 adds r7, r7, #24
- 3496 .LCFI70:
- 3497 .cfi_def_cfa_offset 8
- 3498 01c2 BD46 mov sp, r7
- 3499 .LCFI71:
- 3500 .cfi_def_cfa_register 13
- 3501 @ sp needed
- 3502 01c4 80BD pop {r7, pc}
- 3503 .L155:
- 3504 01c6 00BF .align 2
- 3505 .L154:
- 3506 01c8 0000FFFF .word -65536
- 3507 01cc 00000000 .word I2C_Master_ISR_DMA
- 3508 01d0 00000000 .word I2C_DMAMasterReceiveCplt
- 3509 01d4 00000000 .word I2C_DMAError
- 3510 01d8 00240080 .word -2147474432
- 3511 01dc 00000000 .word I2C_Master_ISR_IT
- 3512 .cfi_endproc
- 3513 .LFE143:
- 3515 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
- 3516 .align 1
- 3517 .global HAL_I2C_Slave_Transmit_DMA
- 3518 .syntax unified
- 3519 .thumb
- 3520 .thumb_func
- 3522 HAL_I2C_Slave_Transmit_DMA:
- 3523 .LFB144:
- 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3524 .loc 1 2279 1
- 3525 .cfi_startproc
- 3526 @ args = 0, pretend = 0, frame = 24
- 3527 @ frame_needed = 1, uses_anonymous_args = 0
- 3528 0000 80B5 push {r7, lr}
- 3529 .LCFI72:
- 3530 .cfi_def_cfa_offset 8
- 3531 .cfi_offset 7, -8
- 3532 .cfi_offset 14, -4
- 3533 0002 86B0 sub sp, sp, #24
- 3534 .LCFI73:
- 3535 .cfi_def_cfa_offset 32
- 3536 0004 00AF add r7, sp, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 103
- 3537 .LCFI74:
- 3538 .cfi_def_cfa_register 7
- 3539 0006 F860 str r0, [r7, #12]
- 3540 0008 B960 str r1, [r7, #8]
- 3541 000a 1346 mov r3, r2
- 3542 000c FB80 strh r3, [r7, #6] @ movhi
- 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 3543 .loc 1 2282 11
- 3544 000e FB68 ldr r3, [r7, #12]
- 3545 0010 93F84130 ldrb r3, [r3, #65]
- 3546 0014 DBB2 uxtb r3, r3
- 3547 .loc 1 2282 6
- 3548 0016 202B cmp r3, #32
- 3549 0018 40F0D180 bne .L157
- 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 3550 .loc 1 2284 8
- 3551 001c BB68 ldr r3, [r7, #8]
- 3552 001e 002B cmp r3, #0
- 3553 0020 02D0 beq .L158
- 3554 .loc 1 2284 25 discriminator 1
- 3555 0022 FB88 ldrh r3, [r7, #6]
- 3556 0024 002B cmp r3, #0
- 3557 0026 05D1 bne .L159
- 3558 .L158:
- 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 3559 .loc 1 2286 23
- 3560 0028 FB68 ldr r3, [r7, #12]
- 3561 002a 4FF40072 mov r2, #512
- 3562 002e 5A64 str r2, [r3, #68]
- 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3563 .loc 1 2287 15
- 3564 0030 0123 movs r3, #1
- 3565 0032 C5E0 b .L160
- 3566 .L159:
- 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 3567 .loc 1 2290 5
- 3568 0034 FB68 ldr r3, [r7, #12]
- 3569 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 3570 003a 012B cmp r3, #1
- 3571 003c 01D1 bne .L161
- 3572 .loc 1 2290 5 is_stmt 0 discriminator 1
- 3573 003e 0223 movs r3, #2
- 3574 0040 BEE0 b .L160
- 3575 .L161:
- 3576 .loc 1 2290 5 discriminator 2
- 3577 0042 FB68 ldr r3, [r7, #12]
- 3578 0044 0122 movs r2, #1
- 3579 0046 83F84020 strb r2, [r3, #64]
- 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 3580 .loc 1 2292 23 is_stmt 1 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 104
- 3581 004a FB68 ldr r3, [r7, #12]
- 3582 004c 2122 movs r2, #33
- 3583 004e 83F84120 strb r2, [r3, #65]
- 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 3584 .loc 1 2293 23 discriminator 2
- 3585 0052 FB68 ldr r3, [r7, #12]
- 3586 0054 2022 movs r2, #32
- 3587 0056 83F84220 strb r2, [r3, #66]
- 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 3588 .loc 1 2294 23 discriminator 2
- 3589 005a FB68 ldr r3, [r7, #12]
- 3590 005c 0022 movs r2, #0
- 3591 005e 5A64 str r2, [r3, #68]
- 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 3592 .loc 1 2297 23 discriminator 2
- 3593 0060 FB68 ldr r3, [r7, #12]
- 3594 0062 BA68 ldr r2, [r7, #8]
- 3595 0064 5A62 str r2, [r3, #36]
- 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 3596 .loc 1 2298 23 discriminator 2
- 3597 0066 FB68 ldr r3, [r7, #12]
- 3598 0068 FA88 ldrh r2, [r7, #6] @ movhi
- 3599 006a 5A85 strh r2, [r3, #42] @ movhi
- 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 3600 .loc 1 2299 29 discriminator 2
- 3601 006c FB68 ldr r3, [r7, #12]
- 3602 006e 5B8D ldrh r3, [r3, #42] @ movhi
- 3603 0070 9AB2 uxth r2, r3
- 3604 .loc 1 2299 23 discriminator 2
- 3605 0072 FB68 ldr r3, [r7, #12]
- 3606 0074 1A85 strh r2, [r3, #40] @ movhi
- 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 3607 .loc 1 2300 23 discriminator 2
- 3608 0076 FB68 ldr r3, [r7, #12]
- 3609 0078 534A ldr r2, .L169
- 3610 007a DA62 str r2, [r3, #44]
- 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
- 3611 .loc 1 2301 23 discriminator 2
- 3612 007c FB68 ldr r3, [r7, #12]
- 3613 007e 534A ldr r2, .L169+4
- 3614 0080 5A63 str r2, [r3, #52]
- 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
- 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
- 3615 .loc 1 2304 19 discriminator 2
- 3616 0082 FB68 ldr r3, [r7, #12]
- 3617 0084 1B6A ldr r3, [r3, #32]
- 3618 .loc 1 2304 8 discriminator 2
- 3619 0086 B3F5003F cmp r3, #131072
- 3620 008a 17D1 bne .L162
- 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 3621 .loc 1 2308 35
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 105
- 3622 008c FB68 ldr r3, [r7, #12]
- 3623 008e 5B6A ldr r3, [r3, #36]
- 3624 .loc 1 2308 30
- 3625 0090 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 3626 .loc 1 2308 11
- 3627 0092 FB68 ldr r3, [r7, #12]
- 3628 0094 1B68 ldr r3, [r3]
- 3629 .loc 1 2308 28
- 3630 0096 9A62 str r2, [r3, #40]
- 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 3631 .loc 1 2311 11
- 3632 0098 FB68 ldr r3, [r7, #12]
- 3633 009a 5B6A ldr r3, [r3, #36]
- 3634 .loc 1 2311 21
- 3635 009c 5A1C adds r2, r3, #1
- 3636 009e FB68 ldr r3, [r7, #12]
- 3637 00a0 5A62 str r2, [r3, #36]
- 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 3638 .loc 1 2313 11
- 3639 00a2 FB68 ldr r3, [r7, #12]
- 3640 00a4 5B8D ldrh r3, [r3, #42] @ movhi
- 3641 00a6 9BB2 uxth r3, r3
- 3642 .loc 1 2313 22
- 3643 00a8 013B subs r3, r3, #1
- 3644 00aa 9AB2 uxth r2, r3
- 3645 00ac FB68 ldr r3, [r7, #12]
- 3646 00ae 5A85 strh r2, [r3, #42] @ movhi
- 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 3647 .loc 1 2314 11
- 3648 00b0 FB68 ldr r3, [r7, #12]
- 3649 00b2 1B8D ldrh r3, [r3, #40]
- 3650 .loc 1 2314 21
- 3651 00b4 013B subs r3, r3, #1
- 3652 00b6 9AB2 uxth r2, r3
- 3653 00b8 FB68 ldr r3, [r7, #12]
- 3654 00ba 1A85 strh r2, [r3, #40] @ movhi
- 3655 .L162:
- 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
- 3656 .loc 1 2317 13
- 3657 00bc FB68 ldr r3, [r7, #12]
- 3658 00be 5B8D ldrh r3, [r3, #42] @ movhi
- 3659 00c0 9BB2 uxth r3, r3
- 3660 .loc 1 2317 8
- 3661 00c2 002B cmp r3, #0
- 3662 00c4 68D0 beq .L163
- 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 3663 .loc 1 2319 15
- 3664 00c6 FB68 ldr r3, [r7, #12]
- 3665 00c8 9B6B ldr r3, [r3, #56]
- 3666 .loc 1 2319 10
- 3667 00ca 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 106
- 3668 00cc 22D0 beq .L164
- 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
- 3669 .loc 1 2322 13
- 3670 00ce FB68 ldr r3, [r7, #12]
- 3671 00d0 9B6B ldr r3, [r3, #56]
- 3672 .loc 1 2322 40
- 3673 00d2 3F4A ldr r2, .L169+8
- 3674 00d4 9A62 str r2, [r3, #40]
- 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
- 3675 .loc 1 2325 13
- 3676 00d6 FB68 ldr r3, [r7, #12]
- 3677 00d8 9B6B ldr r3, [r3, #56]
- 3678 .loc 1 2325 41
- 3679 00da 3E4A ldr r2, .L169+12
- 3680 00dc 1A63 str r2, [r3, #48]
- 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
- 3681 .loc 1 2328 13
- 3682 00de FB68 ldr r3, [r7, #12]
- 3683 00e0 9B6B ldr r3, [r3, #56]
- 3684 .loc 1 2328 44
- 3685 00e2 0022 movs r2, #0
- 3686 00e4 DA62 str r2, [r3, #44]
- 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
- 3687 .loc 1 2329 13
- 3688 00e6 FB68 ldr r3, [r7, #12]
- 3689 00e8 9B6B ldr r3, [r3, #56]
- 3690 .loc 1 2329 41
- 3691 00ea 0022 movs r2, #0
- 3692 00ec 5A63 str r2, [r3, #52]
- 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx,
- 3693 .loc 1 2332 25
- 3694 00ee FB68 ldr r3, [r7, #12]
- 3695 00f0 986B ldr r0, [r3, #56]
- 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
- 3696 .loc 1 2333 56
- 3697 00f2 FB68 ldr r3, [r7, #12]
- 3698 00f4 5B6A ldr r3, [r3, #36]
- 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
- 3699 .loc 1 2332 25
- 3700 00f6 1946 mov r1, r3
- 3701 .loc 1 2333 83
- 3702 00f8 FB68 ldr r3, [r7, #12]
- 3703 00fa 1B68 ldr r3, [r3]
- 3704 .loc 1 2333 78
- 3705 00fc 2833 adds r3, r3, #40
- 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
- 3706 .loc 1 2332 25
- 3707 00fe 1A46 mov r2, r3
- 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 107
- 3708 .loc 1 2334 46
- 3709 0100 FB68 ldr r3, [r7, #12]
- 3710 0102 1B8D ldrh r3, [r3, #40]
- 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
- 3711 .loc 1 2332 25
- 3712 0104 FFF7FEFF bl HAL_DMA_Start_IT
- 3713 0108 0346 mov r3, r0
- 3714 010a FB75 strb r3, [r7, #23]
- 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 3715 .loc 1 2351 10
- 3716 010c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 3717 010e 002B cmp r3, #0
- 3718 0110 2ED1 bne .L166
- 3719 0112 13E0 b .L168
- 3720 .L164:
- 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3721 .loc 1 2339 25
- 3722 0114 FB68 ldr r3, [r7, #12]
- 3723 0116 2822 movs r2, #40
- 3724 0118 83F84120 strb r2, [r3, #65]
- 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3725 .loc 1 2340 25
- 3726 011c FB68 ldr r3, [r7, #12]
- 3727 011e 0022 movs r2, #0
- 3728 0120 83F84220 strb r2, [r3, #66]
- 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3729 .loc 1 2343 25
- 3730 0124 FB68 ldr r3, [r7, #12]
- 3731 0126 5B6C ldr r3, [r3, #68]
- 3732 0128 43F08002 orr r2, r3, #128
- 3733 012c FB68 ldr r3, [r7, #12]
- 3734 012e 5A64 str r2, [r3, #68]
- 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3735 .loc 1 2346 9
- 3736 0130 FB68 ldr r3, [r7, #12]
- 3737 0132 0022 movs r2, #0
- 3738 0134 83F84020 strb r2, [r3, #64]
- 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3739 .loc 1 2348 16
- 3740 0138 0123 movs r3, #1
- 3741 013a 41E0 b .L160
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 108
- 3742 .L168:
- 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 3743 .loc 1 2354 13
- 3744 013c FB68 ldr r3, [r7, #12]
- 3745 013e 1B68 ldr r3, [r3]
- 3746 .loc 1 2354 29
- 3747 0140 5A68 ldr r2, [r3, #4]
- 3748 .loc 1 2354 13
- 3749 0142 FB68 ldr r3, [r7, #12]
- 3750 0144 1B68 ldr r3, [r3]
- 3751 .loc 1 2354 29
- 3752 0146 22F40042 bic r2, r2, #32768
- 3753 014a 5A60 str r2, [r3, #4]
- 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3754 .loc 1 2357 9
- 3755 014c FB68 ldr r3, [r7, #12]
- 3756 014e 0022 movs r2, #0
- 3757 0150 83F84020 strb r2, [r3, #64]
- 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
- 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 3758 .loc 1 2363 9
- 3759 0154 4FF40041 mov r1, #32768
- 3760 0158 F868 ldr r0, [r7, #12]
- 3761 015a FFF7FEFF bl I2C_Enable_IRQ
- 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 3762 .loc 1 2366 13
- 3763 015e FB68 ldr r3, [r7, #12]
- 3764 0160 1B68 ldr r3, [r3]
- 3765 .loc 1 2366 29
- 3766 0162 1A68 ldr r2, [r3]
- 3767 .loc 1 2366 13
- 3768 0164 FB68 ldr r3, [r7, #12]
- 3769 0166 1B68 ldr r3, [r3]
- 3770 .loc 1 2366 29
- 3771 0168 42F48042 orr r2, r2, #16384
- 3772 016c 1A60 str r2, [r3]
- 3773 016e 24E0 b .L167
- 3774 .L166:
- 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 3775 .loc 1 2371 25
- 3776 0170 FB68 ldr r3, [r7, #12]
- 3777 0172 2822 movs r2, #40
- 3778 0174 83F84120 strb r2, [r3, #65]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 109
- 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3779 .loc 1 2372 25
- 3780 0178 FB68 ldr r3, [r7, #12]
- 3781 017a 0022 movs r2, #0
- 3782 017c 83F84220 strb r2, [r3, #66]
- 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 3783 .loc 1 2375 25
- 3784 0180 FB68 ldr r3, [r7, #12]
- 3785 0182 5B6C ldr r3, [r3, #68]
- 3786 0184 43F01002 orr r2, r3, #16
- 3787 0188 FB68 ldr r3, [r7, #12]
- 3788 018a 5A64 str r2, [r3, #68]
- 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3789 .loc 1 2378 9
- 3790 018c FB68 ldr r3, [r7, #12]
- 3791 018e 0022 movs r2, #0
- 3792 0190 83F84020 strb r2, [r3, #64]
- 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3793 .loc 1 2380 16
- 3794 0194 0123 movs r3, #1
- 3795 0196 13E0 b .L160
- 3796 .L163:
- 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 3797 .loc 1 2386 11
- 3798 0198 FB68 ldr r3, [r7, #12]
- 3799 019a 1B68 ldr r3, [r3]
- 3800 .loc 1 2386 27
- 3801 019c 5A68 ldr r2, [r3, #4]
- 3802 .loc 1 2386 11
- 3803 019e FB68 ldr r3, [r7, #12]
- 3804 01a0 1B68 ldr r3, [r3]
- 3805 .loc 1 2386 27
- 3806 01a2 22F40042 bic r2, r2, #32768
- 3807 01a6 5A60 str r2, [r3, #4]
- 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3808 .loc 1 2389 7
- 3809 01a8 FB68 ldr r3, [r7, #12]
- 3810 01aa 0022 movs r2, #0
- 3811 01ac 83F84020 strb r2, [r3, #64]
- 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
- 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 110
- 3812 .loc 1 2395 7
- 3813 01b0 4FF40041 mov r1, #32768
- 3814 01b4 F868 ldr r0, [r7, #12]
- 3815 01b6 FFF7FEFF bl I2C_Enable_IRQ
- 3816 .L167:
- 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 3817 .loc 1 2398 12
- 3818 01ba 0023 movs r3, #0
- 3819 01bc 00E0 b .L160
- 3820 .L157:
- 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 3821 .loc 1 2402 12
- 3822 01be 0223 movs r3, #2
- 3823 .L160:
- 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3824 .loc 1 2404 1
- 3825 01c0 1846 mov r0, r3
- 3826 01c2 1837 adds r7, r7, #24
- 3827 .LCFI75:
- 3828 .cfi_def_cfa_offset 8
- 3829 01c4 BD46 mov sp, r7
- 3830 .LCFI76:
- 3831 .cfi_def_cfa_register 13
- 3832 @ sp needed
- 3833 01c6 80BD pop {r7, pc}
- 3834 .L170:
- 3835 .align 2
- 3836 .L169:
- 3837 01c8 0000FFFF .word -65536
- 3838 01cc 00000000 .word I2C_Slave_ISR_DMA
- 3839 01d0 00000000 .word I2C_DMASlaveTransmitCplt
- 3840 01d4 00000000 .word I2C_DMAError
- 3841 .cfi_endproc
- 3842 .LFE144:
- 3844 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
- 3845 .align 1
- 3846 .global HAL_I2C_Slave_Receive_DMA
- 3847 .syntax unified
- 3848 .thumb
- 3849 .thumb_func
- 3851 HAL_I2C_Slave_Receive_DMA:
- 3852 .LFB145:
- 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 111
- 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)
- 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3853 .loc 1 2415 1
- 3854 .cfi_startproc
- 3855 @ args = 0, pretend = 0, frame = 24
- 3856 @ frame_needed = 1, uses_anonymous_args = 0
- 3857 0000 80B5 push {r7, lr}
- 3858 .LCFI77:
- 3859 .cfi_def_cfa_offset 8
- 3860 .cfi_offset 7, -8
- 3861 .cfi_offset 14, -4
- 3862 0002 86B0 sub sp, sp, #24
- 3863 .LCFI78:
- 3864 .cfi_def_cfa_offset 32
- 3865 0004 00AF add r7, sp, #0
- 3866 .LCFI79:
- 3867 .cfi_def_cfa_register 7
- 3868 0006 F860 str r0, [r7, #12]
- 3869 0008 B960 str r1, [r7, #8]
- 3870 000a 1346 mov r3, r2
- 3871 000c FB80 strh r3, [r7, #6] @ movhi
- 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 3872 .loc 1 2418 11
- 3873 000e FB68 ldr r3, [r7, #12]
- 3874 0010 93F84130 ldrb r3, [r3, #65]
- 3875 0014 DBB2 uxtb r3, r3
- 3876 .loc 1 2418 6
- 3877 0016 202B cmp r3, #32
- 3878 0018 40F09B80 bne .L172
- 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 3879 .loc 1 2420 8
- 3880 001c BB68 ldr r3, [r7, #8]
- 3881 001e 002B cmp r3, #0
- 3882 0020 02D0 beq .L173
- 3883 .loc 1 2420 25 discriminator 1
- 3884 0022 FB88 ldrh r3, [r7, #6]
- 3885 0024 002B cmp r3, #0
- 3886 0026 05D1 bne .L174
- 3887 .L173:
- 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 3888 .loc 1 2422 23
- 3889 0028 FB68 ldr r3, [r7, #12]
- 3890 002a 4FF40072 mov r2, #512
- 3891 002e 5A64 str r2, [r3, #68]
- 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3892 .loc 1 2423 15
- 3893 0030 0123 movs r3, #1
- 3894 0032 8FE0 b .L175
- 3895 .L174:
- 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 3896 .loc 1 2426 5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 112
- 3897 0034 FB68 ldr r3, [r7, #12]
- 3898 0036 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 3899 003a 012B cmp r3, #1
- 3900 003c 01D1 bne .L176
- 3901 .loc 1 2426 5 is_stmt 0 discriminator 1
- 3902 003e 0223 movs r3, #2
- 3903 0040 88E0 b .L175
- 3904 .L176:
- 3905 .loc 1 2426 5 discriminator 2
- 3906 0042 FB68 ldr r3, [r7, #12]
- 3907 0044 0122 movs r2, #1
- 3908 0046 83F84020 strb r2, [r3, #64]
- 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 3909 .loc 1 2428 23 is_stmt 1 discriminator 2
- 3910 004a FB68 ldr r3, [r7, #12]
- 3911 004c 2222 movs r2, #34
- 3912 004e 83F84120 strb r2, [r3, #65]
- 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 3913 .loc 1 2429 23 discriminator 2
- 3914 0052 FB68 ldr r3, [r7, #12]
- 3915 0054 2022 movs r2, #32
- 3916 0056 83F84220 strb r2, [r3, #66]
- 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 3917 .loc 1 2430 23 discriminator 2
- 3918 005a FB68 ldr r3, [r7, #12]
- 3919 005c 0022 movs r2, #0
- 3920 005e 5A64 str r2, [r3, #68]
- 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 3921 .loc 1 2433 23 discriminator 2
- 3922 0060 FB68 ldr r3, [r7, #12]
- 3923 0062 BA68 ldr r2, [r7, #8]
- 3924 0064 5A62 str r2, [r3, #36]
- 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 3925 .loc 1 2434 23 discriminator 2
- 3926 0066 FB68 ldr r3, [r7, #12]
- 3927 0068 FA88 ldrh r2, [r7, #6] @ movhi
- 3928 006a 5A85 strh r2, [r3, #42] @ movhi
- 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 3929 .loc 1 2435 29 discriminator 2
- 3930 006c FB68 ldr r3, [r7, #12]
- 3931 006e 5B8D ldrh r3, [r3, #42] @ movhi
- 3932 0070 9AB2 uxth r2, r3
- 3933 .loc 1 2435 23 discriminator 2
- 3934 0072 FB68 ldr r3, [r7, #12]
- 3935 0074 1A85 strh r2, [r3, #40] @ movhi
- 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 3936 .loc 1 2436 23 discriminator 2
- 3937 0076 FB68 ldr r3, [r7, #12]
- 3938 0078 384A ldr r2, .L182
- 3939 007a DA62 str r2, [r3, #44]
- 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
- 3940 .loc 1 2437 23 discriminator 2
- 3941 007c FB68 ldr r3, [r7, #12]
- 3942 007e 384A ldr r2, .L182+4
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 113
- 3943 0080 5A63 str r2, [r3, #52]
- 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 3944 .loc 1 2439 13 discriminator 2
- 3945 0082 FB68 ldr r3, [r7, #12]
- 3946 0084 DB6B ldr r3, [r3, #60]
- 3947 .loc 1 2439 8 discriminator 2
- 3948 0086 002B cmp r3, #0
- 3949 0088 20D0 beq .L177
- 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
- 3950 .loc 1 2442 11
- 3951 008a FB68 ldr r3, [r7, #12]
- 3952 008c DB6B ldr r3, [r3, #60]
- 3953 .loc 1 2442 38
- 3954 008e 354A ldr r2, .L182+8
- 3955 0090 9A62 str r2, [r3, #40]
- 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
- 3956 .loc 1 2445 11
- 3957 0092 FB68 ldr r3, [r7, #12]
- 3958 0094 DB6B ldr r3, [r3, #60]
- 3959 .loc 1 2445 39
- 3960 0096 344A ldr r2, .L182+12
- 3961 0098 1A63 str r2, [r3, #48]
- 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
- 3962 .loc 1 2448 11
- 3963 009a FB68 ldr r3, [r7, #12]
- 3964 009c DB6B ldr r3, [r3, #60]
- 3965 .loc 1 2448 42
- 3966 009e 0022 movs r2, #0
- 3967 00a0 DA62 str r2, [r3, #44]
- 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
- 3968 .loc 1 2449 11
- 3969 00a2 FB68 ldr r3, [r7, #12]
- 3970 00a4 DB6B ldr r3, [r3, #60]
- 3971 .loc 1 2449 39
- 3972 00a6 0022 movs r2, #0
- 3973 00a8 5A63 str r2, [r3, #52]
- 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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
- 3974 .loc 1 2452 23
- 3975 00aa FB68 ldr r3, [r7, #12]
- 3976 00ac D86B ldr r0, [r3, #60]
- 3977 .loc 1 2452 69
- 3978 00ae FB68 ldr r3, [r7, #12]
- 3979 00b0 1B68 ldr r3, [r3]
- 3980 .loc 1 2452 64
- 3981 00b2 2433 adds r3, r3, #36
- 3982 .loc 1 2452 23
- 3983 00b4 1946 mov r1, r3
- 3984 00b6 BA68 ldr r2, [r7, #8]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 114
- 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 3985 .loc 1 2453 44
- 3986 00b8 FB68 ldr r3, [r7, #12]
- 3987 00ba 1B8D ldrh r3, [r3, #40]
- 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 3988 .loc 1 2452 23
- 3989 00bc FFF7FEFF bl HAL_DMA_Start_IT
- 3990 00c0 0346 mov r3, r0
- 3991 00c2 FB75 strb r3, [r7, #23]
- 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 3992 .loc 1 2470 8
- 3993 00c4 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 3994 00c6 002B cmp r3, #0
- 3995 00c8 2FD1 bne .L179
- 3996 00ca 13E0 b .L181
- 3997 .L177:
- 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3998 .loc 1 2458 23
- 3999 00cc FB68 ldr r3, [r7, #12]
- 4000 00ce 2822 movs r2, #40
- 4001 00d0 83F84120 strb r2, [r3, #65]
- 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4002 .loc 1 2459 23
- 4003 00d4 FB68 ldr r3, [r7, #12]
- 4004 00d6 0022 movs r2, #0
- 4005 00d8 83F84220 strb r2, [r3, #66]
- 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4006 .loc 1 2462 23
- 4007 00dc FB68 ldr r3, [r7, #12]
- 4008 00de 5B6C ldr r3, [r3, #68]
- 4009 00e0 43F08002 orr r2, r3, #128
- 4010 00e4 FB68 ldr r3, [r7, #12]
- 4011 00e6 5A64 str r2, [r3, #68]
- 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4012 .loc 1 2465 7
- 4013 00e8 FB68 ldr r3, [r7, #12]
- 4014 00ea 0022 movs r2, #0
- 4015 00ec 83F84020 strb r2, [r3, #64]
- 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4016 .loc 1 2467 14
- 4017 00f0 0123 movs r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 115
- 4018 00f2 2FE0 b .L175
- 4019 .L181:
- 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 4020 .loc 1 2473 11
- 4021 00f4 FB68 ldr r3, [r7, #12]
- 4022 00f6 1B68 ldr r3, [r3]
- 4023 .loc 1 2473 27
- 4024 00f8 5A68 ldr r2, [r3, #4]
- 4025 .loc 1 2473 11
- 4026 00fa FB68 ldr r3, [r7, #12]
- 4027 00fc 1B68 ldr r3, [r3]
- 4028 .loc 1 2473 27
- 4029 00fe 22F40042 bic r2, r2, #32768
- 4030 0102 5A60 str r2, [r3, #4]
- 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4031 .loc 1 2476 7
- 4032 0104 FB68 ldr r3, [r7, #12]
- 4033 0106 0022 movs r2, #0
- 4034 0108 83F84020 strb r2, [r3, #64]
- 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
- 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 4035 .loc 1 2482 7
- 4036 010c 4FF40041 mov r1, #32768
- 4037 0110 F868 ldr r0, [r7, #12]
- 4038 0112 FFF7FEFF bl I2C_Enable_IRQ
- 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 4039 .loc 1 2485 11
- 4040 0116 FB68 ldr r3, [r7, #12]
- 4041 0118 1B68 ldr r3, [r3]
- 4042 .loc 1 2485 27
- 4043 011a 1A68 ldr r2, [r3]
- 4044 .loc 1 2485 11
- 4045 011c FB68 ldr r3, [r7, #12]
- 4046 011e 1B68 ldr r3, [r3]
- 4047 .loc 1 2485 27
- 4048 0120 42F40042 orr r2, r2, #32768
- 4049 0124 1A60 str r2, [r3]
- 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 116
- 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 4050 .loc 1 2502 12
- 4051 0126 0023 movs r3, #0
- 4052 0128 14E0 b .L175
- 4053 .L179:
- 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4054 .loc 1 2490 23
- 4055 012a FB68 ldr r3, [r7, #12]
- 4056 012c 2822 movs r2, #40
- 4057 012e 83F84120 strb r2, [r3, #65]
- 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4058 .loc 1 2491 23
- 4059 0132 FB68 ldr r3, [r7, #12]
- 4060 0134 0022 movs r2, #0
- 4061 0136 83F84220 strb r2, [r3, #66]
- 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4062 .loc 1 2494 23
- 4063 013a FB68 ldr r3, [r7, #12]
- 4064 013c 5B6C ldr r3, [r3, #68]
- 4065 013e 43F01002 orr r2, r3, #16
- 4066 0142 FB68 ldr r3, [r7, #12]
- 4067 0144 5A64 str r2, [r3, #68]
- 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4068 .loc 1 2497 7
- 4069 0146 FB68 ldr r3, [r7, #12]
- 4070 0148 0022 movs r2, #0
- 4071 014a 83F84020 strb r2, [r3, #64]
- 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4072 .loc 1 2499 14
- 4073 014e 0123 movs r3, #1
- 4074 0150 00E0 b .L175
- 4075 .L172:
- 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 4076 .loc 1 2506 12
- 4077 0152 0223 movs r3, #2
- 4078 .L175:
- 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4079 .loc 1 2508 1
- 4080 0154 1846 mov r0, r3
- 4081 0156 1837 adds r7, r7, #24
- 4082 .LCFI80:
- 4083 .cfi_def_cfa_offset 8
- 4084 0158 BD46 mov sp, r7
- 4085 .LCFI81:
- 4086 .cfi_def_cfa_register 13
- 4087 @ sp needed
- 4088 015a 80BD pop {r7, pc}
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 117
- 4089 .L183:
- 4090 .align 2
- 4091 .L182:
- 4092 015c 0000FFFF .word -65536
- 4093 0160 00000000 .word I2C_Slave_ISR_DMA
- 4094 0164 00000000 .word I2C_DMASlaveReceiveCplt
- 4095 0168 00000000 .word I2C_DMAError
- 4096 .cfi_endproc
- 4097 .LFE145:
- 4099 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
- 4100 .align 1
- 4101 .global HAL_I2C_Mem_Write
- 4102 .syntax unified
- 4103 .thumb
- 4104 .thumb_func
- 4106 HAL_I2C_Mem_Write:
- 4107 .LFB146:
- 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
- 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
- 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4108 .loc 1 2525 1
- 4109 .cfi_startproc
- 4110 @ args = 12, pretend = 0, frame = 24
- 4111 @ frame_needed = 1, uses_anonymous_args = 0
- 4112 0000 80B5 push {r7, lr}
- 4113 .LCFI82:
- 4114 .cfi_def_cfa_offset 8
- 4115 .cfi_offset 7, -8
- 4116 .cfi_offset 14, -4
- 4117 0002 88B0 sub sp, sp, #32
- 4118 .LCFI83:
- 4119 .cfi_def_cfa_offset 40
- 4120 0004 02AF add r7, sp, #8
- 4121 .LCFI84:
- 4122 .cfi_def_cfa 7, 32
- 4123 0006 F860 str r0, [r7, #12]
- 4124 0008 0846 mov r0, r1
- 4125 000a 1146 mov r1, r2
- 4126 000c 1A46 mov r2, r3
- 4127 000e 0346 mov r3, r0 @ movhi
- 4128 0010 7B81 strh r3, [r7, #10] @ movhi
- 4129 0012 0B46 mov r3, r1 @ movhi
- 4130 0014 3B81 strh r3, [r7, #8] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 118
- 4131 0016 1346 mov r3, r2 @ movhi
- 4132 0018 FB80 strh r3, [r7, #6] @ movhi
- 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
- 4133 .loc 1 2529 3
- 4134 001a FB88 ldrh r3, [r7, #6]
- 4135 001c 012B cmp r3, #1
- 4136 001e 07D0 beq .L185
- 4137 .loc 1 2529 3 is_stmt 0 discriminator 1
- 4138 0020 FB88 ldrh r3, [r7, #6]
- 4139 0022 022B cmp r3, #2
- 4140 0024 04D0 beq .L185
- 4141 .loc 1 2529 3 discriminator 2
- 4142 0026 40F6E111 movw r1, #2529
- 4143 002a 8448 ldr r0, .L201
- 4144 002c FFF7FEFF bl assert_failed
- 4145 .L185:
- 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 4146 .loc 1 2531 11 is_stmt 1
- 4147 0030 FB68 ldr r3, [r7, #12]
- 4148 0032 93F84130 ldrb r3, [r3, #65]
- 4149 0036 DBB2 uxtb r3, r3
- 4150 .loc 1 2531 6
- 4151 0038 202B cmp r3, #32
- 4152 003a 40F0F980 bne .L186
- 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 4153 .loc 1 2533 8
- 4154 003e 3B6A ldr r3, [r7, #32]
- 4155 0040 002B cmp r3, #0
- 4156 0042 02D0 beq .L187
- 4157 .loc 1 2533 25 discriminator 1
- 4158 0044 BB8C ldrh r3, [r7, #36]
- 4159 0046 002B cmp r3, #0
- 4160 0048 05D1 bne .L188
- 4161 .L187:
- 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 4162 .loc 1 2535 23
- 4163 004a FB68 ldr r3, [r7, #12]
- 4164 004c 4FF40072 mov r2, #512
- 4165 0050 5A64 str r2, [r3, #68]
- 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4166 .loc 1 2536 15
- 4167 0052 0123 movs r3, #1
- 4168 0054 EDE0 b .L189
- 4169 .L188:
- 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 4170 .loc 1 2540 5
- 4171 0056 FB68 ldr r3, [r7, #12]
- 4172 0058 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 119
- 4173 005c 012B cmp r3, #1
- 4174 005e 01D1 bne .L190
- 4175 .loc 1 2540 5 is_stmt 0 discriminator 1
- 4176 0060 0223 movs r3, #2
- 4177 0062 E6E0 b .L189
- 4178 .L190:
- 4179 .loc 1 2540 5 discriminator 2
- 4180 0064 FB68 ldr r3, [r7, #12]
- 4181 0066 0122 movs r2, #1
- 4182 0068 83F84020 strb r2, [r3, #64]
- 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
- 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 4183 .loc 1 2543 17 is_stmt 1 discriminator 2
- 4184 006c FFF7FEFF bl HAL_GetTick
- 4185 0070 7861 str r0, [r7, #20]
- 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
- 4186 .loc 1 2545 9 discriminator 2
- 4187 0072 7B69 ldr r3, [r7, #20]
- 4188 0074 0093 str r3, [sp]
- 4189 0076 1923 movs r3, #25
- 4190 0078 0122 movs r2, #1
- 4191 007a 4FF40041 mov r1, #32768
- 4192 007e F868 ldr r0, [r7, #12]
- 4193 0080 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 4194 0084 0346 mov r3, r0
- 4195 .loc 1 2545 8 discriminator 2
- 4196 0086 002B cmp r3, #0
- 4197 0088 01D0 beq .L191
- 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4198 .loc 1 2547 14
- 4199 008a 0123 movs r3, #1
- 4200 008c D1E0 b .L189
- 4201 .L191:
- 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 4202 .loc 1 2550 21
- 4203 008e FB68 ldr r3, [r7, #12]
- 4204 0090 2122 movs r2, #33
- 4205 0092 83F84120 strb r2, [r3, #65]
- 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
- 4206 .loc 1 2551 21
- 4207 0096 FB68 ldr r3, [r7, #12]
- 4208 0098 4022 movs r2, #64
- 4209 009a 83F84220 strb r2, [r3, #66]
- 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 4210 .loc 1 2552 21
- 4211 009e FB68 ldr r3, [r7, #12]
- 4212 00a0 0022 movs r2, #0
- 4213 00a2 5A64 str r2, [r3, #68]
- 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 4214 .loc 1 2555 21
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 120
- 4215 00a4 FB68 ldr r3, [r7, #12]
- 4216 00a6 3A6A ldr r2, [r7, #32]
- 4217 00a8 5A62 str r2, [r3, #36]
- 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 4218 .loc 1 2556 21
- 4219 00aa FB68 ldr r3, [r7, #12]
- 4220 00ac BA8C ldrh r2, [r7, #36] @ movhi
- 4221 00ae 5A85 strh r2, [r3, #42] @ movhi
- 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 4222 .loc 1 2557 21
- 4223 00b0 FB68 ldr r3, [r7, #12]
- 4224 00b2 0022 movs r2, #0
- 4225 00b4 5A63 str r2, [r3, #52]
- 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
- 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
- 4226 .loc 1 2560 9
- 4227 00b6 F888 ldrh r0, [r7, #6]
- 4228 00b8 3A89 ldrh r2, [r7, #8]
- 4229 00ba 7989 ldrh r1, [r7, #10]
- 4230 00bc 7B69 ldr r3, [r7, #20]
- 4231 00be 0193 str r3, [sp, #4]
- 4232 00c0 BB6A ldr r3, [r7, #40]
- 4233 00c2 0093 str r3, [sp]
- 4234 00c4 0346 mov r3, r0
- 4235 00c6 F868 ldr r0, [r7, #12]
- 4236 00c8 FFF7FEFF bl I2C_RequestMemoryWrite
- 4237 00cc 0346 mov r3, r0
- 4238 .loc 1 2560 8
- 4239 00ce 002B cmp r3, #0
- 4240 00d0 05D0 beq .L192
- 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4241 .loc 1 2563 7
- 4242 00d2 FB68 ldr r3, [r7, #12]
- 4243 00d4 0022 movs r2, #0
- 4244 00d6 83F84020 strb r2, [r3, #64]
- 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4245 .loc 1 2564 14
- 4246 00da 0123 movs r3, #1
- 4247 00dc A9E0 b .L189
- 4248 .L192:
- 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
- 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 4249 .loc 1 2568 13
- 4250 00de FB68 ldr r3, [r7, #12]
- 4251 00e0 5B8D ldrh r3, [r3, #42] @ movhi
- 4252 00e2 9BB2 uxth r3, r3
- 4253 .loc 1 2568 8
- 4254 00e4 FF2B cmp r3, #255
- 4255 00e6 0ED9 bls .L193
- 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 4256 .loc 1 2570 22
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 121
- 4257 00e8 FB68 ldr r3, [r7, #12]
- 4258 00ea FF22 movs r2, #255
- 4259 00ec 1A85 strh r2, [r3, #40] @ movhi
- 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
- 4260 .loc 1 2571 57
- 4261 00ee FB68 ldr r3, [r7, #12]
- 4262 00f0 1B8D ldrh r3, [r3, #40]
- 4263 .loc 1 2571 7
- 4264 00f2 DAB2 uxtb r2, r3
- 4265 00f4 7989 ldrh r1, [r7, #10]
- 4266 00f6 0023 movs r3, #0
- 4267 00f8 0093 str r3, [sp]
- 4268 00fa 4FF08073 mov r3, #16777216
- 4269 00fe F868 ldr r0, [r7, #12]
- 4270 0100 FFF7FEFF bl I2C_TransferConfig
- 4271 0104 0FE0 b .L199
- 4272 .L193:
- 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 4273 .loc 1 2575 28
- 4274 0106 FB68 ldr r3, [r7, #12]
- 4275 0108 5B8D ldrh r3, [r3, #42] @ movhi
- 4276 010a 9AB2 uxth r2, r3
- 4277 .loc 1 2575 22
- 4278 010c FB68 ldr r3, [r7, #12]
- 4279 010e 1A85 strh r2, [r3, #40] @ movhi
- 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
- 4280 .loc 1 2576 57
- 4281 0110 FB68 ldr r3, [r7, #12]
- 4282 0112 1B8D ldrh r3, [r3, #40]
- 4283 .loc 1 2576 7
- 4284 0114 DAB2 uxtb r2, r3
- 4285 0116 7989 ldrh r1, [r7, #10]
- 4286 0118 0023 movs r3, #0
- 4287 011a 0093 str r3, [sp]
- 4288 011c 4FF00073 mov r3, #33554432
- 4289 0120 F868 ldr r0, [r7, #12]
- 4290 0122 FFF7FEFF bl I2C_TransferConfig
- 4291 .L199:
- 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
- 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 4292 .loc 1 2582 11
- 4293 0126 7A69 ldr r2, [r7, #20]
- 4294 0128 B96A ldr r1, [r7, #40]
- 4295 012a F868 ldr r0, [r7, #12]
- 4296 012c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 4297 0130 0346 mov r3, r0
- 4298 .loc 1 2582 10
- 4299 0132 002B cmp r3, #0
- 4300 0134 01D0 beq .L195
- 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 122
- 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4301 .loc 1 2584 16
- 4302 0136 0123 movs r3, #1
- 4303 0138 7BE0 b .L189
- 4304 .L195:
- 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 4305 .loc 1 2588 35
- 4306 013a FB68 ldr r3, [r7, #12]
- 4307 013c 5B6A ldr r3, [r3, #36]
- 4308 .loc 1 2588 30
- 4309 013e 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 4310 .loc 1 2588 11
- 4311 0140 FB68 ldr r3, [r7, #12]
- 4312 0142 1B68 ldr r3, [r3]
- 4313 .loc 1 2588 28
- 4314 0144 9A62 str r2, [r3, #40]
- 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 4315 .loc 1 2591 11
- 4316 0146 FB68 ldr r3, [r7, #12]
- 4317 0148 5B6A ldr r3, [r3, #36]
- 4318 .loc 1 2591 21
- 4319 014a 5A1C adds r2, r3, #1
- 4320 014c FB68 ldr r3, [r7, #12]
- 4321 014e 5A62 str r2, [r3, #36]
- 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 4322 .loc 1 2593 11
- 4323 0150 FB68 ldr r3, [r7, #12]
- 4324 0152 5B8D ldrh r3, [r3, #42] @ movhi
- 4325 0154 9BB2 uxth r3, r3
- 4326 .loc 1 2593 22
- 4327 0156 013B subs r3, r3, #1
- 4328 0158 9AB2 uxth r2, r3
- 4329 015a FB68 ldr r3, [r7, #12]
- 4330 015c 5A85 strh r2, [r3, #42] @ movhi
- 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 4331 .loc 1 2594 11
- 4332 015e FB68 ldr r3, [r7, #12]
- 4333 0160 1B8D ldrh r3, [r3, #40]
- 4334 .loc 1 2594 21
- 4335 0162 013B subs r3, r3, #1
- 4336 0164 9AB2 uxth r2, r3
- 4337 0166 FB68 ldr r3, [r7, #12]
- 4338 0168 1A85 strh r2, [r3, #40] @ movhi
- 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
- 4339 .loc 1 2596 16
- 4340 016a FB68 ldr r3, [r7, #12]
- 4341 016c 5B8D ldrh r3, [r3, #42] @ movhi
- 4342 016e 9BB2 uxth r3, r3
- 4343 .loc 1 2596 10
- 4344 0170 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 123
- 4345 0172 34D0 beq .L196
- 4346 .loc 1 2596 43 discriminator 1
- 4347 0174 FB68 ldr r3, [r7, #12]
- 4348 0176 1B8D ldrh r3, [r3, #40]
- 4349 .loc 1 2596 35 discriminator 1
- 4350 0178 002B cmp r3, #0
- 4351 017a 30D1 bne .L196
- 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
- 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
- 4352 .loc 1 2599 13
- 4353 017c 7B69 ldr r3, [r7, #20]
- 4354 017e 0093 str r3, [sp]
- 4355 0180 BB6A ldr r3, [r7, #40]
- 4356 0182 0022 movs r2, #0
- 4357 0184 8021 movs r1, #128
- 4358 0186 F868 ldr r0, [r7, #12]
- 4359 0188 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 4360 018c 0346 mov r3, r0
- 4361 .loc 1 2599 12
- 4362 018e 002B cmp r3, #0
- 4363 0190 01D0 beq .L197
- 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4364 .loc 1 2601 18
- 4365 0192 0123 movs r3, #1
- 4366 0194 4DE0 b .L189
- 4367 .L197:
- 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 4368 .loc 1 2604 17
- 4369 0196 FB68 ldr r3, [r7, #12]
- 4370 0198 5B8D ldrh r3, [r3, #42] @ movhi
- 4371 019a 9BB2 uxth r3, r3
- 4372 .loc 1 2604 12
- 4373 019c FF2B cmp r3, #255
- 4374 019e 0ED9 bls .L198
- 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 4375 .loc 1 2606 26
- 4376 01a0 FB68 ldr r3, [r7, #12]
- 4377 01a2 FF22 movs r2, #255
- 4378 01a4 1A85 strh r2, [r3, #40] @ movhi
- 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
- 4379 .loc 1 2607 61
- 4380 01a6 FB68 ldr r3, [r7, #12]
- 4381 01a8 1B8D ldrh r3, [r3, #40]
- 4382 .loc 1 2607 11
- 4383 01aa DAB2 uxtb r2, r3
- 4384 01ac 7989 ldrh r1, [r7, #10]
- 4385 01ae 0023 movs r3, #0
- 4386 01b0 0093 str r3, [sp]
- 4387 01b2 4FF08073 mov r3, #16777216
- 4388 01b6 F868 ldr r0, [r7, #12]
- 4389 01b8 FFF7FEFF bl I2C_TransferConfig
- 4390 01bc 0FE0 b .L196
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 124
- 4391 .L198:
- 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 4392 .loc 1 2612 32
- 4393 01be FB68 ldr r3, [r7, #12]
- 4394 01c0 5B8D ldrh r3, [r3, #42] @ movhi
- 4395 01c2 9AB2 uxth r2, r3
- 4396 .loc 1 2612 26
- 4397 01c4 FB68 ldr r3, [r7, #12]
- 4398 01c6 1A85 strh r2, [r3, #40] @ movhi
- 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 4399 .loc 1 2613 61
- 4400 01c8 FB68 ldr r3, [r7, #12]
- 4401 01ca 1B8D ldrh r3, [r3, #40]
- 4402 .loc 1 2613 11
- 4403 01cc DAB2 uxtb r2, r3
- 4404 01ce 7989 ldrh r1, [r7, #10]
- 4405 01d0 0023 movs r3, #0
- 4406 01d2 0093 str r3, [sp]
- 4407 01d4 4FF00073 mov r3, #33554432
- 4408 01d8 F868 ldr r0, [r7, #12]
- 4409 01da FFF7FEFF bl I2C_TransferConfig
- 4410 .L196:
- 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
- 4411 .loc 1 2618 18
- 4412 01de FB68 ldr r3, [r7, #12]
- 4413 01e0 5B8D ldrh r3, [r3, #42] @ movhi
- 4414 01e2 9BB2 uxth r3, r3
- 4415 .loc 1 2618 5
- 4416 01e4 002B cmp r3, #0
- 4417 01e6 9ED1 bne .L199
- 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
- 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
- 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 4418 .loc 1 2622 9
- 4419 01e8 7A69 ldr r2, [r7, #20]
- 4420 01ea B96A ldr r1, [r7, #40]
- 4421 01ec F868 ldr r0, [r7, #12]
- 4422 01ee FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
- 4423 01f2 0346 mov r3, r0
- 4424 .loc 1 2622 8
- 4425 01f4 002B cmp r3, #0
- 4426 01f6 01D0 beq .L200
- 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4427 .loc 1 2624 14
- 4428 01f8 0123 movs r3, #1
- 4429 01fa 1AE0 b .L189
- 4430 .L200:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 125
- 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 4431 .loc 1 2628 5
- 4432 01fc FB68 ldr r3, [r7, #12]
- 4433 01fe 1B68 ldr r3, [r3]
- 4434 0200 2022 movs r2, #32
- 4435 0202 DA61 str r2, [r3, #28]
- 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 4436 .loc 1 2631 5
- 4437 0204 FB68 ldr r3, [r7, #12]
- 4438 0206 1B68 ldr r3, [r3]
- 4439 0208 5968 ldr r1, [r3, #4]
- 4440 020a FB68 ldr r3, [r7, #12]
- 4441 020c 1A68 ldr r2, [r3]
- 4442 020e 0C4B ldr r3, .L201+4
- 4443 0210 0B40 ands r3, r3, r1
- 4444 0212 5360 str r3, [r2, #4]
- 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 4445 .loc 1 2633 17
- 4446 0214 FB68 ldr r3, [r7, #12]
- 4447 0216 2022 movs r2, #32
- 4448 0218 83F84120 strb r2, [r3, #65]
- 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4449 .loc 1 2634 17
- 4450 021c FB68 ldr r3, [r7, #12]
- 4451 021e 0022 movs r2, #0
- 4452 0220 83F84220 strb r2, [r3, #66]
- 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4453 .loc 1 2637 5
- 4454 0224 FB68 ldr r3, [r7, #12]
- 4455 0226 0022 movs r2, #0
- 4456 0228 83F84020 strb r2, [r3, #64]
- 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 4457 .loc 1 2639 12
- 4458 022c 0023 movs r3, #0
- 4459 022e 00E0 b .L189
- 4460 .L186:
- 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 4461 .loc 1 2643 12
- 4462 0230 0223 movs r3, #2
- 4463 .L189:
- 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4464 .loc 1 2645 1
- 4465 0232 1846 mov r0, r3
- 4466 0234 1837 adds r7, r7, #24
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 126
- 4467 .LCFI85:
- 4468 .cfi_def_cfa_offset 8
- 4469 0236 BD46 mov sp, r7
- 4470 .LCFI86:
- 4471 .cfi_def_cfa_register 13
- 4472 @ sp needed
- 4473 0238 80BD pop {r7, pc}
- 4474 .L202:
- 4475 023a 00BF .align 2
- 4476 .L201:
- 4477 023c 00000000 .word .LC0
- 4478 0240 00E800FE .word -33495040
- 4479 .cfi_endproc
- 4480 .LFE146:
- 4482 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
- 4483 .align 1
- 4484 .global HAL_I2C_Mem_Read
- 4485 .syntax unified
- 4486 .thumb
- 4487 .thumb_func
- 4489 HAL_I2C_Mem_Read:
- 4490 .LFB147:
- 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
- 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
- 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4491 .loc 1 2662 1
- 4492 .cfi_startproc
- 4493 @ args = 12, pretend = 0, frame = 24
- 4494 @ frame_needed = 1, uses_anonymous_args = 0
- 4495 0000 80B5 push {r7, lr}
- 4496 .LCFI87:
- 4497 .cfi_def_cfa_offset 8
- 4498 .cfi_offset 7, -8
- 4499 .cfi_offset 14, -4
- 4500 0002 88B0 sub sp, sp, #32
- 4501 .LCFI88:
- 4502 .cfi_def_cfa_offset 40
- 4503 0004 02AF add r7, sp, #8
- 4504 .LCFI89:
- 4505 .cfi_def_cfa 7, 32
- 4506 0006 F860 str r0, [r7, #12]
- 4507 0008 0846 mov r0, r1
- 4508 000a 1146 mov r1, r2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 127
- 4509 000c 1A46 mov r2, r3
- 4510 000e 0346 mov r3, r0 @ movhi
- 4511 0010 7B81 strh r3, [r7, #10] @ movhi
- 4512 0012 0B46 mov r3, r1 @ movhi
- 4513 0014 3B81 strh r3, [r7, #8] @ movhi
- 4514 0016 1346 mov r3, r2 @ movhi
- 4515 0018 FB80 strh r3, [r7, #6] @ movhi
- 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
- 4516 .loc 1 2666 3
- 4517 001a FB88 ldrh r3, [r7, #6]
- 4518 001c 012B cmp r3, #1
- 4519 001e 07D0 beq .L204
- 4520 .loc 1 2666 3 is_stmt 0 discriminator 1
- 4521 0020 FB88 ldrh r3, [r7, #6]
- 4522 0022 022B cmp r3, #2
- 4523 0024 04D0 beq .L204
- 4524 .loc 1 2666 3 discriminator 2
- 4525 0026 40F66A21 movw r1, #2666
- 4526 002a 8648 ldr r0, .L220
- 4527 002c FFF7FEFF bl assert_failed
- 4528 .L204:
- 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 4529 .loc 1 2668 11 is_stmt 1
- 4530 0030 FB68 ldr r3, [r7, #12]
- 4531 0032 93F84130 ldrb r3, [r3, #65]
- 4532 0036 DBB2 uxtb r3, r3
- 4533 .loc 1 2668 6
- 4534 0038 202B cmp r3, #32
- 4535 003a 40F0FD80 bne .L205
- 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 4536 .loc 1 2670 8
- 4537 003e 3B6A ldr r3, [r7, #32]
- 4538 0040 002B cmp r3, #0
- 4539 0042 02D0 beq .L206
- 4540 .loc 1 2670 25 discriminator 1
- 4541 0044 BB8C ldrh r3, [r7, #36]
- 4542 0046 002B cmp r3, #0
- 4543 0048 05D1 bne .L207
- 4544 .L206:
- 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 4545 .loc 1 2672 23
- 4546 004a FB68 ldr r3, [r7, #12]
- 4547 004c 4FF40072 mov r2, #512
- 4548 0050 5A64 str r2, [r3, #68]
- 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4549 .loc 1 2673 15
- 4550 0052 0123 movs r3, #1
- 4551 0054 F1E0 b .L208
- 4552 .L207:
- 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 128
- 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 4553 .loc 1 2677 5
- 4554 0056 FB68 ldr r3, [r7, #12]
- 4555 0058 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 4556 005c 012B cmp r3, #1
- 4557 005e 01D1 bne .L209
- 4558 .loc 1 2677 5 is_stmt 0 discriminator 1
- 4559 0060 0223 movs r3, #2
- 4560 0062 EAE0 b .L208
- 4561 .L209:
- 4562 .loc 1 2677 5 discriminator 2
- 4563 0064 FB68 ldr r3, [r7, #12]
- 4564 0066 0122 movs r2, #1
- 4565 0068 83F84020 strb r2, [r3, #64]
- 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
- 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 4566 .loc 1 2680 17 is_stmt 1 discriminator 2
- 4567 006c FFF7FEFF bl HAL_GetTick
- 4568 0070 7861 str r0, [r7, #20]
- 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
- 4569 .loc 1 2682 9 discriminator 2
- 4570 0072 7B69 ldr r3, [r7, #20]
- 4571 0074 0093 str r3, [sp]
- 4572 0076 1923 movs r3, #25
- 4573 0078 0122 movs r2, #1
- 4574 007a 4FF40041 mov r1, #32768
- 4575 007e F868 ldr r0, [r7, #12]
- 4576 0080 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 4577 0084 0346 mov r3, r0
- 4578 .loc 1 2682 8 discriminator 2
- 4579 0086 002B cmp r3, #0
- 4580 0088 01D0 beq .L210
- 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4581 .loc 1 2684 14
- 4582 008a 0123 movs r3, #1
- 4583 008c D5E0 b .L208
- 4584 .L210:
- 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 4585 .loc 1 2687 21
- 4586 008e FB68 ldr r3, [r7, #12]
- 4587 0090 2222 movs r2, #34
- 4588 0092 83F84120 strb r2, [r3, #65]
- 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
- 4589 .loc 1 2688 21
- 4590 0096 FB68 ldr r3, [r7, #12]
- 4591 0098 4022 movs r2, #64
- 4592 009a 83F84220 strb r2, [r3, #66]
- 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 4593 .loc 1 2689 21
- 4594 009e FB68 ldr r3, [r7, #12]
- 4595 00a0 0022 movs r2, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 129
- 4596 00a2 5A64 str r2, [r3, #68]
- 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 4597 .loc 1 2692 21
- 4598 00a4 FB68 ldr r3, [r7, #12]
- 4599 00a6 3A6A ldr r2, [r7, #32]
- 4600 00a8 5A62 str r2, [r3, #36]
- 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 4601 .loc 1 2693 21
- 4602 00aa FB68 ldr r3, [r7, #12]
- 4603 00ac BA8C ldrh r2, [r7, #36] @ movhi
- 4604 00ae 5A85 strh r2, [r3, #42] @ movhi
- 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 4605 .loc 1 2694 21
- 4606 00b0 FB68 ldr r3, [r7, #12]
- 4607 00b2 0022 movs r2, #0
- 4608 00b4 5A63 str r2, [r3, #52]
- 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
- 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
- 4609 .loc 1 2697 9
- 4610 00b6 F888 ldrh r0, [r7, #6]
- 4611 00b8 3A89 ldrh r2, [r7, #8]
- 4612 00ba 7989 ldrh r1, [r7, #10]
- 4613 00bc 7B69 ldr r3, [r7, #20]
- 4614 00be 0193 str r3, [sp, #4]
- 4615 00c0 BB6A ldr r3, [r7, #40]
- 4616 00c2 0093 str r3, [sp]
- 4617 00c4 0346 mov r3, r0
- 4618 00c6 F868 ldr r0, [r7, #12]
- 4619 00c8 FFF7FEFF bl I2C_RequestMemoryRead
- 4620 00cc 0346 mov r3, r0
- 4621 .loc 1 2697 8
- 4622 00ce 002B cmp r3, #0
- 4623 00d0 05D0 beq .L211
- 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4624 .loc 1 2700 7
- 4625 00d2 FB68 ldr r3, [r7, #12]
- 4626 00d4 0022 movs r2, #0
- 4627 00d6 83F84020 strb r2, [r3, #64]
- 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4628 .loc 1 2701 14
- 4629 00da 0123 movs r3, #1
- 4630 00dc ADE0 b .L208
- 4631 .L211:
- 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 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 */
- 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 4632 .loc 1 2706 13
- 4633 00de FB68 ldr r3, [r7, #12]
- 4634 00e0 5B8D ldrh r3, [r3, #42] @ movhi
- 4635 00e2 9BB2 uxth r3, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 130
- 4636 .loc 1 2706 8
- 4637 00e4 FF2B cmp r3, #255
- 4638 00e6 0ED9 bls .L212
- 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 4639 .loc 1 2708 22
- 4640 00e8 FB68 ldr r3, [r7, #12]
- 4641 00ea 0122 movs r2, #1
- 4642 00ec 1A85 strh r2, [r3, #40] @ movhi
- 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
- 4643 .loc 1 2709 57
- 4644 00ee FB68 ldr r3, [r7, #12]
- 4645 00f0 1B8D ldrh r3, [r3, #40]
- 4646 .loc 1 2709 7
- 4647 00f2 DAB2 uxtb r2, r3
- 4648 00f4 7989 ldrh r1, [r7, #10]
- 4649 00f6 544B ldr r3, .L220+4
- 4650 00f8 0093 str r3, [sp]
- 4651 00fa 4FF08073 mov r3, #16777216
- 4652 00fe F868 ldr r0, [r7, #12]
- 4653 0100 FFF7FEFF bl I2C_TransferConfig
- 4654 0104 0FE0 b .L218
- 4655 .L212:
- 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
- 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 4656 .loc 1 2714 28
- 4657 0106 FB68 ldr r3, [r7, #12]
- 4658 0108 5B8D ldrh r3, [r3, #42] @ movhi
- 4659 010a 9AB2 uxth r2, r3
- 4660 .loc 1 2714 22
- 4661 010c FB68 ldr r3, [r7, #12]
- 4662 010e 1A85 strh r2, [r3, #40] @ movhi
- 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 4663 .loc 1 2715 57
- 4664 0110 FB68 ldr r3, [r7, #12]
- 4665 0112 1B8D ldrh r3, [r3, #40]
- 4666 .loc 1 2715 7
- 4667 0114 DAB2 uxtb r2, r3
- 4668 0116 7989 ldrh r1, [r7, #10]
- 4669 0118 4B4B ldr r3, .L220+4
- 4670 011a 0093 str r3, [sp]
- 4671 011c 4FF00073 mov r3, #33554432
- 4672 0120 F868 ldr r0, [r7, #12]
- 4673 0122 FFF7FEFF bl I2C_TransferConfig
- 4674 .L218:
- 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
- 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
- 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
- 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
- 4675 .loc 1 2722 11
- 4676 0126 7B69 ldr r3, [r7, #20]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 131
- 4677 0128 0093 str r3, [sp]
- 4678 012a BB6A ldr r3, [r7, #40]
- 4679 012c 0022 movs r2, #0
- 4680 012e 0421 movs r1, #4
- 4681 0130 F868 ldr r0, [r7, #12]
- 4682 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 4683 0136 0346 mov r3, r0
- 4684 .loc 1 2722 10
- 4685 0138 002B cmp r3, #0
- 4686 013a 01D0 beq .L214
- 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4687 .loc 1 2724 16
- 4688 013c 0123 movs r3, #1
- 4689 013e 7CE0 b .L208
- 4690 .L214:
- 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 4691 .loc 1 2728 38
- 4692 0140 FB68 ldr r3, [r7, #12]
- 4693 0142 1B68 ldr r3, [r3]
- 4694 .loc 1 2728 48
- 4695 0144 5A6A ldr r2, [r3, #36]
- 4696 .loc 1 2728 12
- 4697 0146 FB68 ldr r3, [r7, #12]
- 4698 0148 5B6A ldr r3, [r3, #36]
- 4699 .loc 1 2728 25
- 4700 014a D2B2 uxtb r2, r2
- 4701 .loc 1 2728 23
- 4702 014c 1A70 strb r2, [r3]
- 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 4703 .loc 1 2731 11
- 4704 014e FB68 ldr r3, [r7, #12]
- 4705 0150 5B6A ldr r3, [r3, #36]
- 4706 .loc 1 2731 21
- 4707 0152 5A1C adds r2, r3, #1
- 4708 0154 FB68 ldr r3, [r7, #12]
- 4709 0156 5A62 str r2, [r3, #36]
- 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 4710 .loc 1 2733 11
- 4711 0158 FB68 ldr r3, [r7, #12]
- 4712 015a 1B8D ldrh r3, [r3, #40]
- 4713 .loc 1 2733 21
- 4714 015c 013B subs r3, r3, #1
- 4715 015e 9AB2 uxth r2, r3
- 4716 0160 FB68 ldr r3, [r7, #12]
- 4717 0162 1A85 strh r2, [r3, #40] @ movhi
- 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 4718 .loc 1 2734 11
- 4719 0164 FB68 ldr r3, [r7, #12]
- 4720 0166 5B8D ldrh r3, [r3, #42] @ movhi
- 4721 0168 9BB2 uxth r3, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 132
- 4722 .loc 1 2734 22
- 4723 016a 013B subs r3, r3, #1
- 4724 016c 9AB2 uxth r2, r3
- 4725 016e FB68 ldr r3, [r7, #12]
- 4726 0170 5A85 strh r2, [r3, #42] @ movhi
- 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
- 4727 .loc 1 2736 16
- 4728 0172 FB68 ldr r3, [r7, #12]
- 4729 0174 5B8D ldrh r3, [r3, #42] @ movhi
- 4730 0176 9BB2 uxth r3, r3
- 4731 .loc 1 2736 10
- 4732 0178 002B cmp r3, #0
- 4733 017a 34D0 beq .L215
- 4734 .loc 1 2736 43 discriminator 1
- 4735 017c FB68 ldr r3, [r7, #12]
- 4736 017e 1B8D ldrh r3, [r3, #40]
- 4737 .loc 1 2736 35 discriminator 1
- 4738 0180 002B cmp r3, #0
- 4739 0182 30D1 bne .L215
- 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
- 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
- 4740 .loc 1 2739 13
- 4741 0184 7B69 ldr r3, [r7, #20]
- 4742 0186 0093 str r3, [sp]
- 4743 0188 BB6A ldr r3, [r7, #40]
- 4744 018a 0022 movs r2, #0
- 4745 018c 8021 movs r1, #128
- 4746 018e F868 ldr r0, [r7, #12]
- 4747 0190 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 4748 0194 0346 mov r3, r0
- 4749 .loc 1 2739 12
- 4750 0196 002B cmp r3, #0
- 4751 0198 01D0 beq .L216
- 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4752 .loc 1 2741 18
- 4753 019a 0123 movs r3, #1
- 4754 019c 4DE0 b .L208
- 4755 .L216:
- 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 4756 .loc 1 2744 17
- 4757 019e FB68 ldr r3, [r7, #12]
- 4758 01a0 5B8D ldrh r3, [r3, #42] @ movhi
- 4759 01a2 9BB2 uxth r3, r3
- 4760 .loc 1 2744 12
- 4761 01a4 FF2B cmp r3, #255
- 4762 01a6 0ED9 bls .L217
- 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 4763 .loc 1 2746 26
- 4764 01a8 FB68 ldr r3, [r7, #12]
- 4765 01aa 0122 movs r2, #1
- 4766 01ac 1A85 strh r2, [r3, #40] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 133
- 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
- 4767 .loc 1 2747 62
- 4768 01ae FB68 ldr r3, [r7, #12]
- 4769 01b0 1B8D ldrh r3, [r3, #40]
- 4770 .loc 1 2747 11
- 4771 01b2 DAB2 uxtb r2, r3
- 4772 01b4 7989 ldrh r1, [r7, #10]
- 4773 01b6 0023 movs r3, #0
- 4774 01b8 0093 str r3, [sp]
- 4775 01ba 4FF08073 mov r3, #16777216
- 4776 01be F868 ldr r0, [r7, #12]
- 4777 01c0 FFF7FEFF bl I2C_TransferConfig
- 4778 01c4 0FE0 b .L215
- 4779 .L217:
- 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 4780 .loc 1 2752 32
- 4781 01c6 FB68 ldr r3, [r7, #12]
- 4782 01c8 5B8D ldrh r3, [r3, #42] @ movhi
- 4783 01ca 9AB2 uxth r2, r3
- 4784 .loc 1 2752 26
- 4785 01cc FB68 ldr r3, [r7, #12]
- 4786 01ce 1A85 strh r2, [r3, #40] @ movhi
- 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 4787 .loc 1 2753 61
- 4788 01d0 FB68 ldr r3, [r7, #12]
- 4789 01d2 1B8D ldrh r3, [r3, #40]
- 4790 .loc 1 2753 11
- 4791 01d4 DAB2 uxtb r2, r3
- 4792 01d6 7989 ldrh r1, [r7, #10]
- 4793 01d8 0023 movs r3, #0
- 4794 01da 0093 str r3, [sp]
- 4795 01dc 4FF00073 mov r3, #33554432
- 4796 01e0 F868 ldr r0, [r7, #12]
- 4797 01e2 FFF7FEFF bl I2C_TransferConfig
- 4798 .L215:
- 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
- 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
- 4799 .loc 1 2757 18
- 4800 01e6 FB68 ldr r3, [r7, #12]
- 4801 01e8 5B8D ldrh r3, [r3, #42] @ movhi
- 4802 01ea 9BB2 uxth r3, r3
- 4803 .loc 1 2757 5
- 4804 01ec 002B cmp r3, #0
- 4805 01ee 9AD1 bne .L218
- 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
- 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
- 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
- 4806 .loc 1 2761 9
- 4807 01f0 7A69 ldr r2, [r7, #20]
- 4808 01f2 B96A ldr r1, [r7, #40]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 134
- 4809 01f4 F868 ldr r0, [r7, #12]
- 4810 01f6 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
- 4811 01fa 0346 mov r3, r0
- 4812 .loc 1 2761 8
- 4813 01fc 002B cmp r3, #0
- 4814 01fe 01D0 beq .L219
- 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4815 .loc 1 2763 14
- 4816 0200 0123 movs r3, #1
- 4817 0202 1AE0 b .L208
- 4818 .L219:
- 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 4819 .loc 1 2767 5
- 4820 0204 FB68 ldr r3, [r7, #12]
- 4821 0206 1B68 ldr r3, [r3]
- 4822 0208 2022 movs r2, #32
- 4823 020a DA61 str r2, [r3, #28]
- 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 4824 .loc 1 2770 5
- 4825 020c FB68 ldr r3, [r7, #12]
- 4826 020e 1B68 ldr r3, [r3]
- 4827 0210 5968 ldr r1, [r3, #4]
- 4828 0212 FB68 ldr r3, [r7, #12]
- 4829 0214 1A68 ldr r2, [r3]
- 4830 0216 0D4B ldr r3, .L220+8
- 4831 0218 0B40 ands r3, r3, r1
- 4832 021a 5360 str r3, [r2, #4]
- 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 4833 .loc 1 2772 17
- 4834 021c FB68 ldr r3, [r7, #12]
- 4835 021e 2022 movs r2, #32
- 4836 0220 83F84120 strb r2, [r3, #65]
- 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4837 .loc 1 2773 17
- 4838 0224 FB68 ldr r3, [r7, #12]
- 4839 0226 0022 movs r2, #0
- 4840 0228 83F84220 strb r2, [r3, #66]
- 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4841 .loc 1 2776 5
- 4842 022c FB68 ldr r3, [r7, #12]
- 4843 022e 0022 movs r2, #0
- 4844 0230 83F84020 strb r2, [r3, #64]
- 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 4845 .loc 1 2778 12
- 4846 0234 0023 movs r3, #0
- 4847 0236 00E0 b .L208
- 4848 .L205:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 135
- 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 4849 .loc 1 2782 12
- 4850 0238 0223 movs r3, #2
- 4851 .L208:
- 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4852 .loc 1 2784 1
- 4853 023a 1846 mov r0, r3
- 4854 023c 1837 adds r7, r7, #24
- 4855 .LCFI90:
- 4856 .cfi_def_cfa_offset 8
- 4857 023e BD46 mov sp, r7
- 4858 .LCFI91:
- 4859 .cfi_def_cfa_register 13
- 4860 @ sp needed
- 4861 0240 80BD pop {r7, pc}
- 4862 .L221:
- 4863 0242 00BF .align 2
- 4864 .L220:
- 4865 0244 00000000 .word .LC0
- 4866 0248 00240080 .word -2147474432
- 4867 024c 00E800FE .word -33495040
- 4868 .cfi_endproc
- 4869 .LFE147:
- 4871 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
- 4872 .align 1
- 4873 .global HAL_I2C_Mem_Write_IT
- 4874 .syntax unified
- 4875 .thumb
- 4876 .thumb_func
- 4878 HAL_I2C_Mem_Write_IT:
- 4879 .LFB148:
- 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
- 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4880 .loc 1 2799 1
- 4881 .cfi_startproc
- 4882 @ args = 8, pretend = 0, frame = 16
- 4883 @ frame_needed = 1, uses_anonymous_args = 0
- 4884 0000 80B5 push {r7, lr}
- 4885 .LCFI92:
- 4886 .cfi_def_cfa_offset 8
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 136
- 4887 .cfi_offset 7, -8
- 4888 .cfi_offset 14, -4
- 4889 0002 86B0 sub sp, sp, #24
- 4890 .LCFI93:
- 4891 .cfi_def_cfa_offset 32
- 4892 0004 02AF add r7, sp, #8
- 4893 .LCFI94:
- 4894 .cfi_def_cfa 7, 24
- 4895 0006 F860 str r0, [r7, #12]
- 4896 0008 0846 mov r0, r1
- 4897 000a 1146 mov r1, r2
- 4898 000c 1A46 mov r2, r3
- 4899 000e 0346 mov r3, r0 @ movhi
- 4900 0010 7B81 strh r3, [r7, #10] @ movhi
- 4901 0012 0B46 mov r3, r1 @ movhi
- 4902 0014 3B81 strh r3, [r7, #8] @ movhi
- 4903 0016 1346 mov r3, r2 @ movhi
- 4904 0018 FB80 strh r3, [r7, #6] @ movhi
- 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
- 4905 .loc 1 2801 3
- 4906 001a FB88 ldrh r3, [r7, #6]
- 4907 001c 012B cmp r3, #1
- 4908 001e 07D0 beq .L223
- 4909 .loc 1 2801 3 is_stmt 0 discriminator 1
- 4910 0020 FB88 ldrh r3, [r7, #6]
- 4911 0022 022B cmp r3, #2
- 4912 0024 04D0 beq .L223
- 4913 .loc 1 2801 3 discriminator 2
- 4914 0026 40F6F121 movw r1, #2801
- 4915 002a 3C48 ldr r0, .L232
- 4916 002c FFF7FEFF bl assert_failed
- 4917 .L223:
- 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 4918 .loc 1 2803 11 is_stmt 1
- 4919 0030 FB68 ldr r3, [r7, #12]
- 4920 0032 93F84130 ldrb r3, [r3, #65]
- 4921 0036 DBB2 uxtb r3, r3
- 4922 .loc 1 2803 6
- 4923 0038 202B cmp r3, #32
- 4924 003a 6AD1 bne .L224
- 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 4925 .loc 1 2805 8
- 4926 003c BB69 ldr r3, [r7, #24]
- 4927 003e 002B cmp r3, #0
- 4928 0040 02D0 beq .L225
- 4929 .loc 1 2805 25 discriminator 1
- 4930 0042 BB8B ldrh r3, [r7, #28]
- 4931 0044 002B cmp r3, #0
- 4932 0046 05D1 bne .L226
- 4933 .L225:
- 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 4934 .loc 1 2807 23
- 4935 0048 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 137
- 4936 004a 4FF40072 mov r2, #512
- 4937 004e 5A64 str r2, [r3, #68]
- 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4938 .loc 1 2808 15
- 4939 0050 0123 movs r3, #1
- 4940 0052 5FE0 b .L227
- 4941 .L226:
- 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 4942 .loc 1 2811 9
- 4943 0054 FB68 ldr r3, [r7, #12]
- 4944 0056 1B68 ldr r3, [r3]
- 4945 0058 9B69 ldr r3, [r3, #24]
- 4946 005a 03F40043 and r3, r3, #32768
- 4947 .loc 1 2811 8
- 4948 005e B3F5004F cmp r3, #32768
- 4949 0062 01D1 bne .L228
- 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 4950 .loc 1 2813 14
- 4951 0064 0223 movs r3, #2
- 4952 0066 55E0 b .L227
- 4953 .L228:
- 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 4954 .loc 1 2817 5
- 4955 0068 FB68 ldr r3, [r7, #12]
- 4956 006a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 4957 006e 012B cmp r3, #1
- 4958 0070 01D1 bne .L229
- 4959 .loc 1 2817 5 is_stmt 0 discriminator 1
- 4960 0072 0223 movs r3, #2
- 4961 0074 4EE0 b .L227
- 4962 .L229:
- 4963 .loc 1 2817 5 discriminator 2
- 4964 0076 FB68 ldr r3, [r7, #12]
- 4965 0078 0122 movs r2, #1
- 4966 007a 83F84020 strb r2, [r3, #64]
- 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 4967 .loc 1 2819 23 is_stmt 1 discriminator 2
- 4968 007e FB68 ldr r3, [r7, #12]
- 4969 0080 2122 movs r2, #33
- 4970 0082 83F84120 strb r2, [r3, #65]
- 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
- 4971 .loc 1 2820 23 discriminator 2
- 4972 0086 FB68 ldr r3, [r7, #12]
- 4973 0088 4022 movs r2, #64
- 4974 008a 83F84220 strb r2, [r3, #66]
- 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 4975 .loc 1 2821 23 discriminator 2
- 4976 008e FB68 ldr r3, [r7, #12]
- 4977 0090 0022 movs r2, #0
- 4978 0092 5A64 str r2, [r3, #68]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 138
- 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0U;
- 4979 .loc 1 2824 23 discriminator 2
- 4980 0094 FB68 ldr r3, [r7, #12]
- 4981 0096 0022 movs r2, #0
- 4982 0098 1A85 strh r2, [r3, #40] @ movhi
- 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 4983 .loc 1 2825 23 discriminator 2
- 4984 009a FB68 ldr r3, [r7, #12]
- 4985 009c BA69 ldr r2, [r7, #24]
- 4986 009e 5A62 str r2, [r3, #36]
- 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 4987 .loc 1 2826 23 discriminator 2
- 4988 00a0 FB68 ldr r3, [r7, #12]
- 4989 00a2 BA8B ldrh r2, [r7, #28] @ movhi
- 4990 00a4 5A85 strh r2, [r3, #42] @ movhi
- 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 4991 .loc 1 2827 23 discriminator 2
- 4992 00a6 FB68 ldr r3, [r7, #12]
- 4993 00a8 1D4A ldr r2, .L232+4
- 4994 00aa DA62 str r2, [r3, #44]
- 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
- 4995 .loc 1 2828 23 discriminator 2
- 4996 00ac FB68 ldr r3, [r7, #12]
- 4997 00ae 1D4A ldr r2, .L232+8
- 4998 00b0 5A63 str r2, [r3, #52]
- 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
- 4999 .loc 1 2829 23 discriminator 2
- 5000 00b2 7A89 ldrh r2, [r7, #10]
- 5001 00b4 FB68 ldr r3, [r7, #12]
- 5002 00b6 DA64 str r2, [r3, #76]
- 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
- 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
- 5003 .loc 1 2832 8 discriminator 2
- 5004 00b8 FB88 ldrh r3, [r7, #6]
- 5005 00ba 012B cmp r3, #1
- 5006 00bc 09D1 bne .L230
- 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
- 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 5007 .loc 1 2835 30
- 5008 00be 3B89 ldrh r3, [r7, #8] @ movhi
- 5009 00c0 DAB2 uxtb r2, r3
- 5010 .loc 1 2835 11
- 5011 00c2 FB68 ldr r3, [r7, #12]
- 5012 00c4 1B68 ldr r3, [r3]
- 5013 .loc 1 2835 28
- 5014 00c6 9A62 str r2, [r3, #40]
- 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
- 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
- 5015 .loc 1 2838 24
- 5016 00c8 FB68 ldr r3, [r7, #12]
- 5017 00ca 4FF0FF32 mov r2, #-1
- 5018 00ce 1A65 str r2, [r3, #80]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 139
- 5019 00d0 0BE0 b .L231
- 5020 .L230:
- 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
- 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
- 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
- 5021 .loc 1 2844 30
- 5022 00d2 3B89 ldrh r3, [r7, #8]
- 5023 00d4 1B0A lsrs r3, r3, #8
- 5024 00d6 9BB2 uxth r3, r3
- 5025 00d8 DAB2 uxtb r2, r3
- 5026 .loc 1 2844 11
- 5027 00da FB68 ldr r3, [r7, #12]
- 5028 00dc 1B68 ldr r3, [r3]
- 5029 .loc 1 2844 28
- 5030 00de 9A62 str r2, [r3, #40]
- 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
- 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
- 5031 .loc 1 2847 26
- 5032 00e0 3B89 ldrh r3, [r7, #8] @ movhi
- 5033 00e2 DBB2 uxtb r3, r3
- 5034 00e4 1A46 mov r2, r3
- 5035 .loc 1 2847 24
- 5036 00e6 FB68 ldr r3, [r7, #12]
- 5037 00e8 1A65 str r2, [r3, #80]
- 5038 .L231:
- 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
- 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W
- 5039 .loc 1 2850 5
- 5040 00ea FB88 ldrh r3, [r7, #6] @ movhi
- 5041 00ec DAB2 uxtb r2, r3
- 5042 00ee 7989 ldrh r1, [r7, #10]
- 5043 00f0 0D4B ldr r3, .L232+12
- 5044 00f2 0093 str r3, [sp]
- 5045 00f4 4FF08073 mov r3, #16777216
- 5046 00f8 F868 ldr r0, [r7, #12]
- 5047 00fa FFF7FEFF bl I2C_TransferConfig
- 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 5048 .loc 1 2853 5
- 5049 00fe FB68 ldr r3, [r7, #12]
- 5050 0100 0022 movs r2, #0
- 5051 0102 83F84020 strb r2, [r3, #64]
- 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 140
- 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 5052 .loc 1 2863 5
- 5053 0106 0121 movs r1, #1
- 5054 0108 F868 ldr r0, [r7, #12]
- 5055 010a FFF7FEFF bl I2C_Enable_IRQ
- 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 5056 .loc 1 2865 12
- 5057 010e 0023 movs r3, #0
- 5058 0110 00E0 b .L227
- 5059 .L224:
- 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5060 .loc 1 2869 12
- 5061 0112 0223 movs r3, #2
- 5062 .L227:
- 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5063 .loc 1 2871 1
- 5064 0114 1846 mov r0, r3
- 5065 0116 1037 adds r7, r7, #16
- 5066 .LCFI95:
- 5067 .cfi_def_cfa_offset 8
- 5068 0118 BD46 mov sp, r7
- 5069 .LCFI96:
- 5070 .cfi_def_cfa_register 13
- 5071 @ sp needed
- 5072 011a 80BD pop {r7, pc}
- 5073 .L233:
- 5074 .align 2
- 5075 .L232:
- 5076 011c 00000000 .word .LC0
- 5077 0120 0000FFFF .word -65536
- 5078 0124 00000000 .word I2C_Mem_ISR_IT
- 5079 0128 00200080 .word -2147475456
- 5080 .cfi_endproc
- 5081 .LFE148:
- 5083 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
- 5084 .align 1
- 5085 .global HAL_I2C_Mem_Read_IT
- 5086 .syntax unified
- 5087 .thumb
- 5088 .thumb_func
- 5090 HAL_I2C_Mem_Read_IT:
- 5091 .LFB149:
- 2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 141
- 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
- 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5092 .loc 1 2887 1
- 5093 .cfi_startproc
- 5094 @ args = 8, pretend = 0, frame = 16
- 5095 @ frame_needed = 1, uses_anonymous_args = 0
- 5096 0000 80B5 push {r7, lr}
- 5097 .LCFI97:
- 5098 .cfi_def_cfa_offset 8
- 5099 .cfi_offset 7, -8
- 5100 .cfi_offset 14, -4
- 5101 0002 86B0 sub sp, sp, #24
- 5102 .LCFI98:
- 5103 .cfi_def_cfa_offset 32
- 5104 0004 02AF add r7, sp, #8
- 5105 .LCFI99:
- 5106 .cfi_def_cfa 7, 24
- 5107 0006 F860 str r0, [r7, #12]
- 5108 0008 0846 mov r0, r1
- 5109 000a 1146 mov r1, r2
- 5110 000c 1A46 mov r2, r3
- 5111 000e 0346 mov r3, r0 @ movhi
- 5112 0010 7B81 strh r3, [r7, #10] @ movhi
- 5113 0012 0B46 mov r3, r1 @ movhi
- 5114 0014 3B81 strh r3, [r7, #8] @ movhi
- 5115 0016 1346 mov r3, r2 @ movhi
- 5116 0018 FB80 strh r3, [r7, #6] @ movhi
- 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
- 5117 .loc 1 2889 3
- 5118 001a FB88 ldrh r3, [r7, #6]
- 5119 001c 012B cmp r3, #1
- 5120 001e 07D0 beq .L235
- 5121 .loc 1 2889 3 is_stmt 0 discriminator 1
- 5122 0020 FB88 ldrh r3, [r7, #6]
- 5123 0022 022B cmp r3, #2
- 5124 0024 04D0 beq .L235
- 5125 .loc 1 2889 3 discriminator 2
- 5126 0026 40F64931 movw r1, #2889
- 5127 002a 3A48 ldr r0, .L244
- 5128 002c FFF7FEFF bl assert_failed
- 5129 .L235:
- 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 5130 .loc 1 2891 11 is_stmt 1
- 5131 0030 FB68 ldr r3, [r7, #12]
- 5132 0032 93F84130 ldrb r3, [r3, #65]
- 5133 0036 DBB2 uxtb r3, r3
- 5134 .loc 1 2891 6
- 5135 0038 202B cmp r3, #32
- 5136 003a 66D1 bne .L236
- 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 142
- 5137 .loc 1 2893 8
- 5138 003c BB69 ldr r3, [r7, #24]
- 5139 003e 002B cmp r3, #0
- 5140 0040 02D0 beq .L237
- 5141 .loc 1 2893 25 discriminator 1
- 5142 0042 BB8B ldrh r3, [r7, #28]
- 5143 0044 002B cmp r3, #0
- 5144 0046 05D1 bne .L238
- 5145 .L237:
- 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 5146 .loc 1 2895 23
- 5147 0048 FB68 ldr r3, [r7, #12]
- 5148 004a 4FF40072 mov r2, #512
- 5149 004e 5A64 str r2, [r3, #68]
- 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 5150 .loc 1 2896 15
- 5151 0050 0123 movs r3, #1
- 5152 0052 5BE0 b .L239
- 5153 .L238:
- 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 5154 .loc 1 2899 9
- 5155 0054 FB68 ldr r3, [r7, #12]
- 5156 0056 1B68 ldr r3, [r3]
- 5157 0058 9B69 ldr r3, [r3, #24]
- 5158 005a 03F40043 and r3, r3, #32768
- 5159 .loc 1 2899 8
- 5160 005e B3F5004F cmp r3, #32768
- 5161 0062 01D1 bne .L240
- 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5162 .loc 1 2901 14
- 5163 0064 0223 movs r3, #2
- 5164 0066 51E0 b .L239
- 5165 .L240:
- 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 5166 .loc 1 2905 5
- 5167 0068 FB68 ldr r3, [r7, #12]
- 5168 006a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 5169 006e 012B cmp r3, #1
- 5170 0070 01D1 bne .L241
- 5171 .loc 1 2905 5 is_stmt 0 discriminator 1
- 5172 0072 0223 movs r3, #2
- 5173 0074 4AE0 b .L239
- 5174 .L241:
- 5175 .loc 1 2905 5 discriminator 2
- 5176 0076 FB68 ldr r3, [r7, #12]
- 5177 0078 0122 movs r2, #1
- 5178 007a 83F84020 strb r2, [r3, #64]
- 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 5179 .loc 1 2907 23 is_stmt 1 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 143
- 5180 007e FB68 ldr r3, [r7, #12]
- 5181 0080 2222 movs r2, #34
- 5182 0082 83F84120 strb r2, [r3, #65]
- 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
- 5183 .loc 1 2908 23 discriminator 2
- 5184 0086 FB68 ldr r3, [r7, #12]
- 5185 0088 4022 movs r2, #64
- 5186 008a 83F84220 strb r2, [r3, #66]
- 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 5187 .loc 1 2909 23 discriminator 2
- 5188 008e FB68 ldr r3, [r7, #12]
- 5189 0090 0022 movs r2, #0
- 5190 0092 5A64 str r2, [r3, #68]
- 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 5191 .loc 1 2912 23 discriminator 2
- 5192 0094 FB68 ldr r3, [r7, #12]
- 5193 0096 BA69 ldr r2, [r7, #24]
- 5194 0098 5A62 str r2, [r3, #36]
- 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 5195 .loc 1 2913 23 discriminator 2
- 5196 009a FB68 ldr r3, [r7, #12]
- 5197 009c BA8B ldrh r2, [r7, #28] @ movhi
- 5198 009e 5A85 strh r2, [r3, #42] @ movhi
- 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 5199 .loc 1 2914 23 discriminator 2
- 5200 00a0 FB68 ldr r3, [r7, #12]
- 5201 00a2 1D4A ldr r2, .L244+4
- 5202 00a4 DA62 str r2, [r3, #44]
- 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
- 5203 .loc 1 2915 23 discriminator 2
- 5204 00a6 FB68 ldr r3, [r7, #12]
- 5205 00a8 1C4A ldr r2, .L244+8
- 5206 00aa 5A63 str r2, [r3, #52]
- 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
- 5207 .loc 1 2916 23 discriminator 2
- 5208 00ac 7A89 ldrh r2, [r7, #10]
- 5209 00ae FB68 ldr r3, [r7, #12]
- 5210 00b0 DA64 str r2, [r3, #76]
- 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
- 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
- 5211 .loc 1 2919 8 discriminator 2
- 5212 00b2 FB88 ldrh r3, [r7, #6]
- 5213 00b4 012B cmp r3, #1
- 5214 00b6 09D1 bne .L242
- 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
- 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 5215 .loc 1 2922 30
- 5216 00b8 3B89 ldrh r3, [r7, #8] @ movhi
- 5217 00ba DAB2 uxtb r2, r3
- 5218 .loc 1 2922 11
- 5219 00bc FB68 ldr r3, [r7, #12]
- 5220 00be 1B68 ldr r3, [r3]
- 5221 .loc 1 2922 28
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 144
- 5222 00c0 9A62 str r2, [r3, #40]
- 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
- 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
- 5223 .loc 1 2925 24
- 5224 00c2 FB68 ldr r3, [r7, #12]
- 5225 00c4 4FF0FF32 mov r2, #-1
- 5226 00c8 1A65 str r2, [r3, #80]
- 5227 00ca 0BE0 b .L243
- 5228 .L242:
- 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
- 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
- 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
- 5229 .loc 1 2931 30
- 5230 00cc 3B89 ldrh r3, [r7, #8]
- 5231 00ce 1B0A lsrs r3, r3, #8
- 5232 00d0 9BB2 uxth r3, r3
- 5233 00d2 DAB2 uxtb r2, r3
- 5234 .loc 1 2931 11
- 5235 00d4 FB68 ldr r3, [r7, #12]
- 5236 00d6 1B68 ldr r3, [r3]
- 5237 .loc 1 2931 28
- 5238 00d8 9A62 str r2, [r3, #40]
- 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
- 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
- 5239 .loc 1 2934 26
- 5240 00da 3B89 ldrh r3, [r7, #8] @ movhi
- 5241 00dc DBB2 uxtb r3, r3
- 5242 00de 1A46 mov r2, r3
- 5243 .loc 1 2934 24
- 5244 00e0 FB68 ldr r3, [r7, #12]
- 5245 00e2 1A65 str r2, [r3, #80]
- 5246 .L243:
- 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
- 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_
- 5247 .loc 1 2937 5
- 5248 00e4 FB88 ldrh r3, [r7, #6] @ movhi
- 5249 00e6 DAB2 uxtb r2, r3
- 5250 00e8 7989 ldrh r1, [r7, #10]
- 5251 00ea 0D4B ldr r3, .L244+12
- 5252 00ec 0093 str r3, [sp]
- 5253 00ee 0023 movs r3, #0
- 5254 00f0 F868 ldr r0, [r7, #12]
- 5255 00f2 FFF7FEFF bl I2C_TransferConfig
- 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 5256 .loc 1 2940 5
- 5257 00f6 FB68 ldr r3, [r7, #12]
- 5258 00f8 0022 movs r2, #0
- 5259 00fa 83F84020 strb r2, [r3, #64]
- 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 145
- 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 5260 .loc 1 2950 5
- 5261 00fe 0121 movs r1, #1
- 5262 0100 F868 ldr r0, [r7, #12]
- 5263 0102 FFF7FEFF bl I2C_Enable_IRQ
- 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 5264 .loc 1 2952 12
- 5265 0106 0023 movs r3, #0
- 5266 0108 00E0 b .L239
- 5267 .L236:
- 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5268 .loc 1 2956 12
- 5269 010a 0223 movs r3, #2
- 5270 .L239:
- 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5271 .loc 1 2958 1
- 5272 010c 1846 mov r0, r3
- 5273 010e 1037 adds r7, r7, #16
- 5274 .LCFI100:
- 5275 .cfi_def_cfa_offset 8
- 5276 0110 BD46 mov sp, r7
- 5277 .LCFI101:
- 5278 .cfi_def_cfa_register 13
- 5279 @ sp needed
- 5280 0112 80BD pop {r7, pc}
- 5281 .L245:
- 5282 .align 2
- 5283 .L244:
- 5284 0114 00000000 .word .LC0
- 5285 0118 0000FFFF .word -65536
- 5286 011c 00000000 .word I2C_Mem_ISR_IT
- 5287 0120 00200080 .word -2147475456
- 5288 .cfi_endproc
- 5289 .LFE149:
- 5291 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
- 5292 .align 1
- 5293 .global HAL_I2C_Mem_Write_DMA
- 5294 .syntax unified
- 5295 .thumb
- 5296 .thumb_func
- 5298 HAL_I2C_Mem_Write_DMA:
- 5299 .LFB150:
- 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 146
- 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
- 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
- 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5300 .loc 1 2974 1
- 5301 .cfi_startproc
- 5302 @ args = 8, pretend = 0, frame = 24
- 5303 @ frame_needed = 1, uses_anonymous_args = 0
- 5304 0000 80B5 push {r7, lr}
- 5305 .LCFI102:
- 5306 .cfi_def_cfa_offset 8
- 5307 .cfi_offset 7, -8
- 5308 .cfi_offset 14, -4
- 5309 0002 88B0 sub sp, sp, #32
- 5310 .LCFI103:
- 5311 .cfi_def_cfa_offset 40
- 5312 0004 02AF add r7, sp, #8
- 5313 .LCFI104:
- 5314 .cfi_def_cfa 7, 32
- 5315 0006 F860 str r0, [r7, #12]
- 5316 0008 0846 mov r0, r1
- 5317 000a 1146 mov r1, r2
- 5318 000c 1A46 mov r2, r3
- 5319 000e 0346 mov r3, r0 @ movhi
- 5320 0010 7B81 strh r3, [r7, #10] @ movhi
- 5321 0012 0B46 mov r3, r1 @ movhi
- 5322 0014 3B81 strh r3, [r7, #8] @ movhi
- 5323 0016 1346 mov r3, r2 @ movhi
- 5324 0018 FB80 strh r3, [r7, #6] @ movhi
- 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
- 5325 .loc 1 2978 3
- 5326 001a FB88 ldrh r3, [r7, #6]
- 5327 001c 012B cmp r3, #1
- 5328 001e 07D0 beq .L247
- 5329 .loc 1 2978 3 is_stmt 0 discriminator 1
- 5330 0020 FB88 ldrh r3, [r7, #6]
- 5331 0022 022B cmp r3, #2
- 5332 0024 04D0 beq .L247
- 5333 .loc 1 2978 3 discriminator 2
- 5334 0026 40F6A231 movw r1, #2978
- 5335 002a 6948 ldr r0, .L263
- 5336 002c FFF7FEFF bl assert_failed
- 5337 .L247:
- 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 147
- 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 5338 .loc 1 2980 11 is_stmt 1
- 5339 0030 FB68 ldr r3, [r7, #12]
- 5340 0032 93F84130 ldrb r3, [r3, #65]
- 5341 0036 DBB2 uxtb r3, r3
- 5342 .loc 1 2980 6
- 5343 0038 202B cmp r3, #32
- 5344 003a 40F0C380 bne .L248
- 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 5345 .loc 1 2982 8
- 5346 003e 3B6A ldr r3, [r7, #32]
- 5347 0040 002B cmp r3, #0
- 5348 0042 02D0 beq .L249
- 5349 .loc 1 2982 25 discriminator 1
- 5350 0044 BB8C ldrh r3, [r7, #36]
- 5351 0046 002B cmp r3, #0
- 5352 0048 05D1 bne .L250
- 5353 .L249:
- 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 5354 .loc 1 2984 23
- 5355 004a FB68 ldr r3, [r7, #12]
- 5356 004c 4FF40072 mov r2, #512
- 5357 0050 5A64 str r2, [r3, #68]
- 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 5358 .loc 1 2985 15
- 5359 0052 0123 movs r3, #1
- 5360 0054 B7E0 b .L251
- 5361 .L250:
- 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 5362 .loc 1 2988 9
- 5363 0056 FB68 ldr r3, [r7, #12]
- 5364 0058 1B68 ldr r3, [r3]
- 5365 005a 9B69 ldr r3, [r3, #24]
- 5366 005c 03F40043 and r3, r3, #32768
- 5367 .loc 1 2988 8
- 5368 0060 B3F5004F cmp r3, #32768
- 5369 0064 01D1 bne .L252
- 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5370 .loc 1 2990 14
- 5371 0066 0223 movs r3, #2
- 5372 0068 ADE0 b .L251
- 5373 .L252:
- 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 5374 .loc 1 2994 5
- 5375 006a FB68 ldr r3, [r7, #12]
- 5376 006c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 5377 0070 012B cmp r3, #1
- 5378 0072 01D1 bne .L253
- 5379 .loc 1 2994 5 is_stmt 0 discriminator 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 148
- 5380 0074 0223 movs r3, #2
- 5381 0076 A6E0 b .L251
- 5382 .L253:
- 5383 .loc 1 2994 5 discriminator 2
- 5384 0078 FB68 ldr r3, [r7, #12]
- 5385 007a 0122 movs r2, #1
- 5386 007c 83F84020 strb r2, [r3, #64]
- 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 5387 .loc 1 2996 23 is_stmt 1 discriminator 2
- 5388 0080 FB68 ldr r3, [r7, #12]
- 5389 0082 2122 movs r2, #33
- 5390 0084 83F84120 strb r2, [r3, #65]
- 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
- 5391 .loc 1 2997 23 discriminator 2
- 5392 0088 FB68 ldr r3, [r7, #12]
- 5393 008a 4022 movs r2, #64
- 5394 008c 83F84220 strb r2, [r3, #66]
- 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 5395 .loc 1 2998 23 discriminator 2
- 5396 0090 FB68 ldr r3, [r7, #12]
- 5397 0092 0022 movs r2, #0
- 5398 0094 5A64 str r2, [r3, #68]
- 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 5399 .loc 1 3001 23 discriminator 2
- 5400 0096 FB68 ldr r3, [r7, #12]
- 5401 0098 3A6A ldr r2, [r7, #32]
- 5402 009a 5A62 str r2, [r3, #36]
- 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 5403 .loc 1 3002 23 discriminator 2
- 5404 009c FB68 ldr r3, [r7, #12]
- 5405 009e BA8C ldrh r2, [r7, #36] @ movhi
- 5406 00a0 5A85 strh r2, [r3, #42] @ movhi
- 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 5407 .loc 1 3003 23 discriminator 2
- 5408 00a2 FB68 ldr r3, [r7, #12]
- 5409 00a4 4B4A ldr r2, .L263+4
- 5410 00a6 DA62 str r2, [r3, #44]
- 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
- 5411 .loc 1 3004 23 discriminator 2
- 5412 00a8 FB68 ldr r3, [r7, #12]
- 5413 00aa 4B4A ldr r2, .L263+8
- 5414 00ac 5A63 str r2, [r3, #52]
- 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
- 5415 .loc 1 3005 23 discriminator 2
- 5416 00ae 7A89 ldrh r2, [r7, #10]
- 5417 00b0 FB68 ldr r3, [r7, #12]
- 5418 00b2 DA64 str r2, [r3, #76]
- 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 5419 .loc 1 3007 13 discriminator 2
- 5420 00b4 FB68 ldr r3, [r7, #12]
- 5421 00b6 5B8D ldrh r3, [r3, #42] @ movhi
- 5422 00b8 9BB2 uxth r3, r3
- 5423 .loc 1 3007 8 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 149
- 5424 00ba FF2B cmp r3, #255
- 5425 00bc 03D9 bls .L254
- 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 5426 .loc 1 3009 22
- 5427 00be FB68 ldr r3, [r7, #12]
- 5428 00c0 FF22 movs r2, #255
- 5429 00c2 1A85 strh r2, [r3, #40] @ movhi
- 5430 00c4 04E0 b .L255
- 5431 .L254:
- 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 5432 .loc 1 3013 28
- 5433 00c6 FB68 ldr r3, [r7, #12]
- 5434 00c8 5B8D ldrh r3, [r3, #42] @ movhi
- 5435 00ca 9AB2 uxth r2, r3
- 5436 .loc 1 3013 22
- 5437 00cc FB68 ldr r3, [r7, #12]
- 5438 00ce 1A85 strh r2, [r3, #40] @ movhi
- 5439 .L255:
- 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
- 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
- 5440 .loc 1 3017 8
- 5441 00d0 FB88 ldrh r3, [r7, #6]
- 5442 00d2 012B cmp r3, #1
- 5443 00d4 09D1 bne .L256
- 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
- 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 5444 .loc 1 3020 30
- 5445 00d6 3B89 ldrh r3, [r7, #8] @ movhi
- 5446 00d8 DAB2 uxtb r2, r3
- 5447 .loc 1 3020 11
- 5448 00da FB68 ldr r3, [r7, #12]
- 5449 00dc 1B68 ldr r3, [r3]
- 5450 .loc 1 3020 28
- 5451 00de 9A62 str r2, [r3, #40]
- 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
- 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
- 5452 .loc 1 3023 24
- 5453 00e0 FB68 ldr r3, [r7, #12]
- 5454 00e2 4FF0FF32 mov r2, #-1
- 5455 00e6 1A65 str r2, [r3, #80]
- 5456 00e8 0BE0 b .L257
- 5457 .L256:
- 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
- 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
- 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
- 5458 .loc 1 3029 30
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 150
- 5459 00ea 3B89 ldrh r3, [r7, #8]
- 5460 00ec 1B0A lsrs r3, r3, #8
- 5461 00ee 9BB2 uxth r3, r3
- 5462 00f0 DAB2 uxtb r2, r3
- 5463 .loc 1 3029 11
- 5464 00f2 FB68 ldr r3, [r7, #12]
- 5465 00f4 1B68 ldr r3, [r3]
- 5466 .loc 1 3029 28
- 5467 00f6 9A62 str r2, [r3, #40]
- 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
- 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
- 5468 .loc 1 3032 26
- 5469 00f8 3B89 ldrh r3, [r7, #8] @ movhi
- 5470 00fa DBB2 uxtb r3, r3
- 5471 00fc 1A46 mov r2, r3
- 5472 .loc 1 3032 24
- 5473 00fe FB68 ldr r3, [r7, #12]
- 5474 0100 1A65 str r2, [r3, #80]
- 5475 .L257:
- 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 5476 .loc 1 3035 13
- 5477 0102 FB68 ldr r3, [r7, #12]
- 5478 0104 9B6B ldr r3, [r3, #56]
- 5479 .loc 1 3035 8
- 5480 0106 002B cmp r3, #0
- 5481 0108 20D0 beq .L258
- 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
- 5482 .loc 1 3038 11
- 5483 010a FB68 ldr r3, [r7, #12]
- 5484 010c 9B6B ldr r3, [r3, #56]
- 5485 .loc 1 3038 38
- 5486 010e 334A ldr r2, .L263+12
- 5487 0110 9A62 str r2, [r3, #40]
- 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
- 5488 .loc 1 3041 11
- 5489 0112 FB68 ldr r3, [r7, #12]
- 5490 0114 9B6B ldr r3, [r3, #56]
- 5491 .loc 1 3041 39
- 5492 0116 324A ldr r2, .L263+16
- 5493 0118 1A63 str r2, [r3, #48]
- 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
- 5494 .loc 1 3044 11
- 5495 011a FB68 ldr r3, [r7, #12]
- 5496 011c 9B6B ldr r3, [r3, #56]
- 5497 .loc 1 3044 42
- 5498 011e 0022 movs r2, #0
- 5499 0120 DA62 str r2, [r3, #44]
- 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 151
- 5500 .loc 1 3045 11
- 5501 0122 FB68 ldr r3, [r7, #12]
- 5502 0124 9B6B ldr r3, [r3, #56]
- 5503 .loc 1 3045 39
- 5504 0126 0022 movs r2, #0
- 5505 0128 5A63 str r2, [r3, #52]
- 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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
- 5506 .loc 1 3048 23
- 5507 012a FB68 ldr r3, [r7, #12]
- 5508 012c 986B ldr r0, [r3, #56]
- 5509 012e 396A ldr r1, [r7, #32]
- 5510 .loc 1 3048 86
- 5511 0130 FB68 ldr r3, [r7, #12]
- 5512 0132 1B68 ldr r3, [r3]
- 5513 .loc 1 3048 81
- 5514 0134 2833 adds r3, r3, #40
- 5515 .loc 1 3048 23
- 5516 0136 1A46 mov r2, r3
- 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 5517 .loc 1 3049 44
- 5518 0138 FB68 ldr r3, [r7, #12]
- 5519 013a 1B8D ldrh r3, [r3, #40]
- 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 5520 .loc 1 3048 23
- 5521 013c FFF7FEFF bl HAL_DMA_Start_IT
- 5522 0140 0346 mov r3, r0
- 5523 0142 FB75 strb r3, [r7, #23]
- 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 5524 .loc 1 3066 8
- 5525 0144 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 5526 0146 002B cmp r3, #0
- 5527 0148 28D1 bne .L260
- 5528 014a 13E0 b .L262
- 5529 .L258:
- 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 5530 .loc 1 3054 23
- 5531 014c FB68 ldr r3, [r7, #12]
- 5532 014e 2022 movs r2, #32
- 5533 0150 83F84120 strb r2, [r3, #65]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 152
- 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5534 .loc 1 3055 23
- 5535 0154 FB68 ldr r3, [r7, #12]
- 5536 0156 0022 movs r2, #0
- 5537 0158 83F84220 strb r2, [r3, #66]
- 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5538 .loc 1 3058 23
- 5539 015c FB68 ldr r3, [r7, #12]
- 5540 015e 5B6C ldr r3, [r3, #68]
- 5541 0160 43F08002 orr r2, r3, #128
- 5542 0164 FB68 ldr r3, [r7, #12]
- 5543 0166 5A64 str r2, [r3, #68]
- 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5544 .loc 1 3061 7
- 5545 0168 FB68 ldr r3, [r7, #12]
- 5546 016a 0022 movs r2, #0
- 5547 016c 83F84020 strb r2, [r3, #64]
- 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5548 .loc 1 3063 14
- 5549 0170 0123 movs r3, #1
- 5550 0172 28E0 b .L251
- 5551 .L262:
- 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
- 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START
- 5552 .loc 1 3069 7
- 5553 0174 FB88 ldrh r3, [r7, #6] @ movhi
- 5554 0176 DAB2 uxtb r2, r3
- 5555 0178 7989 ldrh r1, [r7, #10]
- 5556 017a 1A4B ldr r3, .L263+20
- 5557 017c 0093 str r3, [sp]
- 5558 017e 4FF08073 mov r3, #16777216
- 5559 0182 F868 ldr r0, [r7, #12]
- 5560 0184 FFF7FEFF bl I2C_TransferConfig
- 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 5561 .loc 1 3072 7
- 5562 0188 FB68 ldr r3, [r7, #12]
- 5563 018a 0022 movs r2, #0
- 5564 018c 83F84020 strb r2, [r3, #64]
- 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 5565 .loc 1 3081 7
- 5566 0190 0121 movs r1, #1
- 5567 0192 F868 ldr r0, [r7, #12]
- 5568 0194 FFF7FEFF bl I2C_Enable_IRQ
- 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 153
- 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 5569 .loc 1 3098 12
- 5570 0198 0023 movs r3, #0
- 5571 019a 14E0 b .L251
- 5572 .L260:
- 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 5573 .loc 1 3086 23
- 5574 019c FB68 ldr r3, [r7, #12]
- 5575 019e 2022 movs r2, #32
- 5576 01a0 83F84120 strb r2, [r3, #65]
- 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5577 .loc 1 3087 23
- 5578 01a4 FB68 ldr r3, [r7, #12]
- 5579 01a6 0022 movs r2, #0
- 5580 01a8 83F84220 strb r2, [r3, #66]
- 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5581 .loc 1 3090 23
- 5582 01ac FB68 ldr r3, [r7, #12]
- 5583 01ae 5B6C ldr r3, [r3, #68]
- 5584 01b0 43F01002 orr r2, r3, #16
- 5585 01b4 FB68 ldr r3, [r7, #12]
- 5586 01b6 5A64 str r2, [r3, #68]
- 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5587 .loc 1 3093 7
- 5588 01b8 FB68 ldr r3, [r7, #12]
- 5589 01ba 0022 movs r2, #0
- 5590 01bc 83F84020 strb r2, [r3, #64]
- 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5591 .loc 1 3095 14
- 5592 01c0 0123 movs r3, #1
- 5593 01c2 00E0 b .L251
- 5594 .L248:
- 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5595 .loc 1 3102 12
- 5596 01c4 0223 movs r3, #2
- 5597 .L251:
- 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5598 .loc 1 3104 1
- 5599 01c6 1846 mov r0, r3
- 5600 01c8 1837 adds r7, r7, #24
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 154
- 5601 .LCFI105:
- 5602 .cfi_def_cfa_offset 8
- 5603 01ca BD46 mov sp, r7
- 5604 .LCFI106:
- 5605 .cfi_def_cfa_register 13
- 5606 @ sp needed
- 5607 01cc 80BD pop {r7, pc}
- 5608 .L264:
- 5609 01ce 00BF .align 2
- 5610 .L263:
- 5611 01d0 00000000 .word .LC0
- 5612 01d4 0000FFFF .word -65536
- 5613 01d8 00000000 .word I2C_Mem_ISR_DMA
- 5614 01dc 00000000 .word I2C_DMAMasterTransmitCplt
- 5615 01e0 00000000 .word I2C_DMAError
- 5616 01e4 00200080 .word -2147475456
- 5617 .cfi_endproc
- 5618 .LFE150:
- 5620 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
- 5621 .align 1
- 5622 .global HAL_I2C_Mem_Read_DMA
- 5623 .syntax unified
- 5624 .thumb
- 5625 .thumb_func
- 5627 HAL_I2C_Mem_Read_DMA:
- 5628 .LFB151:
- 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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.
- 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read
- 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
- 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5629 .loc 1 3120 1
- 5630 .cfi_startproc
- 5631 @ args = 8, pretend = 0, frame = 24
- 5632 @ frame_needed = 1, uses_anonymous_args = 0
- 5633 0000 80B5 push {r7, lr}
- 5634 .LCFI107:
- 5635 .cfi_def_cfa_offset 8
- 5636 .cfi_offset 7, -8
- 5637 .cfi_offset 14, -4
- 5638 0002 88B0 sub sp, sp, #32
- 5639 .LCFI108:
- 5640 .cfi_def_cfa_offset 40
- 5641 0004 02AF add r7, sp, #8
- 5642 .LCFI109:
- 5643 .cfi_def_cfa 7, 32
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 155
- 5644 0006 F860 str r0, [r7, #12]
- 5645 0008 0846 mov r0, r1
- 5646 000a 1146 mov r1, r2
- 5647 000c 1A46 mov r2, r3
- 5648 000e 0346 mov r3, r0 @ movhi
- 5649 0010 7B81 strh r3, [r7, #10] @ movhi
- 5650 0012 0B46 mov r3, r1 @ movhi
- 5651 0014 3B81 strh r3, [r7, #8] @ movhi
- 5652 0016 1346 mov r3, r2 @ movhi
- 5653 0018 FB80 strh r3, [r7, #6] @ movhi
- 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
- 5654 .loc 1 3124 3
- 5655 001a FB88 ldrh r3, [r7, #6]
- 5656 001c 012B cmp r3, #1
- 5657 001e 07D0 beq .L266
- 5658 .loc 1 3124 3 is_stmt 0 discriminator 1
- 5659 0020 FB88 ldrh r3, [r7, #6]
- 5660 0022 022B cmp r3, #2
- 5661 0024 04D0 beq .L266
- 5662 .loc 1 3124 3 discriminator 2
- 5663 0026 40F63441 movw r1, #3124
- 5664 002a 6848 ldr r0, .L282
- 5665 002c FFF7FEFF bl assert_failed
- 5666 .L266:
- 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 5667 .loc 1 3126 11 is_stmt 1
- 5668 0030 FB68 ldr r3, [r7, #12]
- 5669 0032 93F84130 ldrb r3, [r3, #65]
- 5670 0036 DBB2 uxtb r3, r3
- 5671 .loc 1 3126 6
- 5672 0038 202B cmp r3, #32
- 5673 003a 40F0C280 bne .L267
- 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 5674 .loc 1 3128 8
- 5675 003e 3B6A ldr r3, [r7, #32]
- 5676 0040 002B cmp r3, #0
- 5677 0042 02D0 beq .L268
- 5678 .loc 1 3128 25 discriminator 1
- 5679 0044 BB8C ldrh r3, [r7, #36]
- 5680 0046 002B cmp r3, #0
- 5681 0048 05D1 bne .L269
- 5682 .L268:
- 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 5683 .loc 1 3130 23
- 5684 004a FB68 ldr r3, [r7, #12]
- 5685 004c 4FF40072 mov r2, #512
- 5686 0050 5A64 str r2, [r3, #68]
- 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 5687 .loc 1 3131 15
- 5688 0052 0123 movs r3, #1
- 5689 0054 B6E0 b .L270
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 156
- 5690 .L269:
- 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 5691 .loc 1 3134 9
- 5692 0056 FB68 ldr r3, [r7, #12]
- 5693 0058 1B68 ldr r3, [r3]
- 5694 005a 9B69 ldr r3, [r3, #24]
- 5695 005c 03F40043 and r3, r3, #32768
- 5696 .loc 1 3134 8
- 5697 0060 B3F5004F cmp r3, #32768
- 5698 0064 01D1 bne .L271
- 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5699 .loc 1 3136 14
- 5700 0066 0223 movs r3, #2
- 5701 0068 ACE0 b .L270
- 5702 .L271:
- 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 5703 .loc 1 3140 5
- 5704 006a FB68 ldr r3, [r7, #12]
- 5705 006c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 5706 0070 012B cmp r3, #1
- 5707 0072 01D1 bne .L272
- 5708 .loc 1 3140 5 is_stmt 0 discriminator 1
- 5709 0074 0223 movs r3, #2
- 5710 0076 A5E0 b .L270
- 5711 .L272:
- 5712 .loc 1 3140 5 discriminator 2
- 5713 0078 FB68 ldr r3, [r7, #12]
- 5714 007a 0122 movs r2, #1
- 5715 007c 83F84020 strb r2, [r3, #64]
- 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 5716 .loc 1 3142 23 is_stmt 1 discriminator 2
- 5717 0080 FB68 ldr r3, [r7, #12]
- 5718 0082 2222 movs r2, #34
- 5719 0084 83F84120 strb r2, [r3, #65]
- 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
- 5720 .loc 1 3143 23 discriminator 2
- 5721 0088 FB68 ldr r3, [r7, #12]
- 5722 008a 4022 movs r2, #64
- 5723 008c 83F84220 strb r2, [r3, #66]
- 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 5724 .loc 1 3144 23 discriminator 2
- 5725 0090 FB68 ldr r3, [r7, #12]
- 5726 0092 0022 movs r2, #0
- 5727 0094 5A64 str r2, [r3, #68]
- 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 5728 .loc 1 3147 23 discriminator 2
- 5729 0096 FB68 ldr r3, [r7, #12]
- 5730 0098 3A6A ldr r2, [r7, #32]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 157
- 5731 009a 5A62 str r2, [r3, #36]
- 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 5732 .loc 1 3148 23 discriminator 2
- 5733 009c FB68 ldr r3, [r7, #12]
- 5734 009e BA8C ldrh r2, [r7, #36] @ movhi
- 5735 00a0 5A85 strh r2, [r3, #42] @ movhi
- 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 5736 .loc 1 3149 23 discriminator 2
- 5737 00a2 FB68 ldr r3, [r7, #12]
- 5738 00a4 4A4A ldr r2, .L282+4
- 5739 00a6 DA62 str r2, [r3, #44]
- 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
- 5740 .loc 1 3150 23 discriminator 2
- 5741 00a8 FB68 ldr r3, [r7, #12]
- 5742 00aa 4A4A ldr r2, .L282+8
- 5743 00ac 5A63 str r2, [r3, #52]
- 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
- 5744 .loc 1 3151 23 discriminator 2
- 5745 00ae 7A89 ldrh r2, [r7, #10]
- 5746 00b0 FB68 ldr r3, [r7, #12]
- 5747 00b2 DA64 str r2, [r3, #76]
- 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 5748 .loc 1 3153 13 discriminator 2
- 5749 00b4 FB68 ldr r3, [r7, #12]
- 5750 00b6 5B8D ldrh r3, [r3, #42] @ movhi
- 5751 00b8 9BB2 uxth r3, r3
- 5752 .loc 1 3153 8 discriminator 2
- 5753 00ba FF2B cmp r3, #255
- 5754 00bc 03D9 bls .L273
- 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 5755 .loc 1 3155 22
- 5756 00be FB68 ldr r3, [r7, #12]
- 5757 00c0 FF22 movs r2, #255
- 5758 00c2 1A85 strh r2, [r3, #40] @ movhi
- 5759 00c4 04E0 b .L274
- 5760 .L273:
- 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 5761 .loc 1 3159 28
- 5762 00c6 FB68 ldr r3, [r7, #12]
- 5763 00c8 5B8D ldrh r3, [r3, #42] @ movhi
- 5764 00ca 9AB2 uxth r2, r3
- 5765 .loc 1 3159 22
- 5766 00cc FB68 ldr r3, [r7, #12]
- 5767 00ce 1A85 strh r2, [r3, #40] @ movhi
- 5768 .L274:
- 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
- 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
- 5769 .loc 1 3163 8
- 5770 00d0 FB88 ldrh r3, [r7, #6]
- 5771 00d2 012B cmp r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 158
- 5772 00d4 09D1 bne .L275
- 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
- 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 5773 .loc 1 3166 30
- 5774 00d6 3B89 ldrh r3, [r7, #8] @ movhi
- 5775 00d8 DAB2 uxtb r2, r3
- 5776 .loc 1 3166 11
- 5777 00da FB68 ldr r3, [r7, #12]
- 5778 00dc 1B68 ldr r3, [r3]
- 5779 .loc 1 3166 28
- 5780 00de 9A62 str r2, [r3, #40]
- 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
- 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
- 5781 .loc 1 3169 24
- 5782 00e0 FB68 ldr r3, [r7, #12]
- 5783 00e2 4FF0FF32 mov r2, #-1
- 5784 00e6 1A65 str r2, [r3, #80]
- 5785 00e8 0BE0 b .L276
- 5786 .L275:
- 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
- 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
- 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
- 5787 .loc 1 3175 30
- 5788 00ea 3B89 ldrh r3, [r7, #8]
- 5789 00ec 1B0A lsrs r3, r3, #8
- 5790 00ee 9BB2 uxth r3, r3
- 5791 00f0 DAB2 uxtb r2, r3
- 5792 .loc 1 3175 11
- 5793 00f2 FB68 ldr r3, [r7, #12]
- 5794 00f4 1B68 ldr r3, [r3]
- 5795 .loc 1 3175 28
- 5796 00f6 9A62 str r2, [r3, #40]
- 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
- 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
- 5797 .loc 1 3178 26
- 5798 00f8 3B89 ldrh r3, [r7, #8] @ movhi
- 5799 00fa DBB2 uxtb r3, r3
- 5800 00fc 1A46 mov r2, r3
- 5801 .loc 1 3178 24
- 5802 00fe FB68 ldr r3, [r7, #12]
- 5803 0100 1A65 str r2, [r3, #80]
- 5804 .L276:
- 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 5805 .loc 1 3181 13
- 5806 0102 FB68 ldr r3, [r7, #12]
- 5807 0104 DB6B ldr r3, [r3, #60]
- 5808 .loc 1 3181 8
- 5809 0106 002B cmp r3, #0
- 5810 0108 20D0 beq .L277
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 159
- 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
- 5811 .loc 1 3184 11
- 5812 010a FB68 ldr r3, [r7, #12]
- 5813 010c DB6B ldr r3, [r3, #60]
- 5814 .loc 1 3184 38
- 5815 010e 324A ldr r2, .L282+12
- 5816 0110 9A62 str r2, [r3, #40]
- 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
- 5817 .loc 1 3187 11
- 5818 0112 FB68 ldr r3, [r7, #12]
- 5819 0114 DB6B ldr r3, [r3, #60]
- 5820 .loc 1 3187 39
- 5821 0116 314A ldr r2, .L282+16
- 5822 0118 1A63 str r2, [r3, #48]
- 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
- 5823 .loc 1 3190 11
- 5824 011a FB68 ldr r3, [r7, #12]
- 5825 011c DB6B ldr r3, [r3, #60]
- 5826 .loc 1 3190 42
- 5827 011e 0022 movs r2, #0
- 5828 0120 DA62 str r2, [r3, #44]
- 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
- 5829 .loc 1 3191 11
- 5830 0122 FB68 ldr r3, [r7, #12]
- 5831 0124 DB6B ldr r3, [r3, #60]
- 5832 .loc 1 3191 39
- 5833 0126 0022 movs r2, #0
- 5834 0128 5A63 str r2, [r3, #52]
- 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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
- 5835 .loc 1 3194 23
- 5836 012a FB68 ldr r3, [r7, #12]
- 5837 012c D86B ldr r0, [r3, #60]
- 5838 .loc 1 3194 69
- 5839 012e FB68 ldr r3, [r7, #12]
- 5840 0130 1B68 ldr r3, [r3]
- 5841 .loc 1 3194 64
- 5842 0132 2433 adds r3, r3, #36
- 5843 .loc 1 3194 23
- 5844 0134 1946 mov r1, r3
- 5845 0136 3A6A ldr r2, [r7, #32]
- 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 5846 .loc 1 3195 44
- 5847 0138 FB68 ldr r3, [r7, #12]
- 5848 013a 1B8D ldrh r3, [r3, #40]
- 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 5849 .loc 1 3194 23
- 5850 013c FFF7FEFF bl HAL_DMA_Start_IT
- 5851 0140 0346 mov r3, r0
- 5852 0142 FB75 strb r3, [r7, #23]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 160
- 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 5853 .loc 1 3212 8
- 5854 0144 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 5855 0146 002B cmp r3, #0
- 5856 0148 27D1 bne .L279
- 5857 014a 13E0 b .L281
- 5858 .L277:
- 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 5859 .loc 1 3200 23
- 5860 014c FB68 ldr r3, [r7, #12]
- 5861 014e 2022 movs r2, #32
- 5862 0150 83F84120 strb r2, [r3, #65]
- 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5863 .loc 1 3201 23
- 5864 0154 FB68 ldr r3, [r7, #12]
- 5865 0156 0022 movs r2, #0
- 5866 0158 83F84220 strb r2, [r3, #66]
- 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5867 .loc 1 3204 23
- 5868 015c FB68 ldr r3, [r7, #12]
- 5869 015e 5B6C ldr r3, [r3, #68]
- 5870 0160 43F08002 orr r2, r3, #128
- 5871 0164 FB68 ldr r3, [r7, #12]
- 5872 0166 5A64 str r2, [r3, #68]
- 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5873 .loc 1 3207 7
- 5874 0168 FB68 ldr r3, [r7, #12]
- 5875 016a 0022 movs r2, #0
- 5876 016c 83F84020 strb r2, [r3, #64]
- 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5877 .loc 1 3209 14
- 5878 0170 0123 movs r3, #1
- 5879 0172 27E0 b .L270
- 5880 .L281:
- 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
- 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR
- 5881 .loc 1 3215 7
- 5882 0174 FB88 ldrh r3, [r7, #6] @ movhi
- 5883 0176 DAB2 uxtb r2, r3
- 5884 0178 7989 ldrh r1, [r7, #10]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 161
- 5885 017a 194B ldr r3, .L282+20
- 5886 017c 0093 str r3, [sp]
- 5887 017e 0023 movs r3, #0
- 5888 0180 F868 ldr r0, [r7, #12]
- 5889 0182 FFF7FEFF bl I2C_TransferConfig
- 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 5890 .loc 1 3218 7
- 5891 0186 FB68 ldr r3, [r7, #12]
- 5892 0188 0022 movs r2, #0
- 5893 018a 83F84020 strb r2, [r3, #64]
- 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 5894 .loc 1 3227 7
- 5895 018e 0121 movs r1, #1
- 5896 0190 F868 ldr r0, [r7, #12]
- 5897 0192 FFF7FEFF bl I2C_Enable_IRQ
- 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 5898 .loc 1 3244 12
- 5899 0196 0023 movs r3, #0
- 5900 0198 14E0 b .L270
- 5901 .L279:
- 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 5902 .loc 1 3232 23
- 5903 019a FB68 ldr r3, [r7, #12]
- 5904 019c 2022 movs r2, #32
- 5905 019e 83F84120 strb r2, [r3, #65]
- 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5906 .loc 1 3233 23
- 5907 01a2 FB68 ldr r3, [r7, #12]
- 5908 01a4 0022 movs r2, #0
- 5909 01a6 83F84220 strb r2, [r3, #66]
- 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 162
- 5910 .loc 1 3236 23
- 5911 01aa FB68 ldr r3, [r7, #12]
- 5912 01ac 5B6C ldr r3, [r3, #68]
- 5913 01ae 43F01002 orr r2, r3, #16
- 5914 01b2 FB68 ldr r3, [r7, #12]
- 5915 01b4 5A64 str r2, [r3, #68]
- 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5916 .loc 1 3239 7
- 5917 01b6 FB68 ldr r3, [r7, #12]
- 5918 01b8 0022 movs r2, #0
- 5919 01ba 83F84020 strb r2, [r3, #64]
- 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5920 .loc 1 3241 14
- 5921 01be 0123 movs r3, #1
- 5922 01c0 00E0 b .L270
- 5923 .L267:
- 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5924 .loc 1 3248 12
- 5925 01c2 0223 movs r3, #2
- 5926 .L270:
- 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5927 .loc 1 3250 1
- 5928 01c4 1846 mov r0, r3
- 5929 01c6 1837 adds r7, r7, #24
- 5930 .LCFI110:
- 5931 .cfi_def_cfa_offset 8
- 5932 01c8 BD46 mov sp, r7
- 5933 .LCFI111:
- 5934 .cfi_def_cfa_register 13
- 5935 @ sp needed
- 5936 01ca 80BD pop {r7, pc}
- 5937 .L283:
- 5938 .align 2
- 5939 .L282:
- 5940 01cc 00000000 .word .LC0
- 5941 01d0 0000FFFF .word -65536
- 5942 01d4 00000000 .word I2C_Mem_ISR_DMA
- 5943 01d8 00000000 .word I2C_DMAMasterReceiveCplt
- 5944 01dc 00000000 .word I2C_DMAError
- 5945 01e0 00200080 .word -2147475456
- 5946 .cfi_endproc
- 5947 .LFE151:
- 5949 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
- 5950 .align 1
- 5951 .global HAL_I2C_IsDeviceReady
- 5952 .syntax unified
- 5953 .thumb
- 5954 .thumb_func
- 5956 HAL_I2C_IsDeviceReady:
- 5957 .LFB152:
- 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 163
- 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices
- 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials
- 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
- 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
- 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5958 .loc 1 3265 1
- 5959 .cfi_startproc
- 5960 @ args = 0, pretend = 0, frame = 32
- 5961 @ frame_needed = 1, uses_anonymous_args = 0
- 5962 0000 80B5 push {r7, lr}
- 5963 .LCFI112:
- 5964 .cfi_def_cfa_offset 8
- 5965 .cfi_offset 7, -8
- 5966 .cfi_offset 14, -4
- 5967 0002 8AB0 sub sp, sp, #40
- 5968 .LCFI113:
- 5969 .cfi_def_cfa_offset 48
- 5970 0004 02AF add r7, sp, #8
- 5971 .LCFI114:
- 5972 .cfi_def_cfa 7, 40
- 5973 0006 F860 str r0, [r7, #12]
- 5974 0008 7A60 str r2, [r7, #4]
- 5975 000a 3B60 str r3, [r7]
- 5976 000c 0B46 mov r3, r1 @ movhi
- 5977 000e 7B81 strh r3, [r7, #10] @ movhi
- 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
- 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
- 5978 .loc 1 3268 17
- 5979 0010 0023 movs r3, #0
- 5980 0012 7B61 str r3, [r7, #20]
- 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1;
- 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
- 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 5981 .loc 1 3273 11
- 5982 0014 FB68 ldr r3, [r7, #12]
- 5983 0016 93F84130 ldrb r3, [r3, #65]
- 5984 001a DBB2 uxtb r3, r3
- 5985 .loc 1 3273 6
- 5986 001c 202B cmp r3, #32
- 5987 001e 40F0D680 bne .L285
- 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
- 5988 .loc 1 3275 9
- 5989 0022 FB68 ldr r3, [r7, #12]
- 5990 0024 1B68 ldr r3, [r3]
- 5991 0026 9B69 ldr r3, [r3, #24]
- 5992 0028 03F40043 and r3, r3, #32768
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 164
- 5993 .loc 1 3275 8
- 5994 002c B3F5004F cmp r3, #32768
- 5995 0030 01D1 bne .L286
- 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 5996 .loc 1 3277 14
- 5997 0032 0223 movs r3, #2
- 5998 0034 CCE0 b .L287
- 5999 .L286:
- 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 6000 .loc 1 3281 5
- 6001 0036 FB68 ldr r3, [r7, #12]
- 6002 0038 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 6003 003c 012B cmp r3, #1
- 6004 003e 01D1 bne .L288
- 6005 .loc 1 3281 5 is_stmt 0 discriminator 1
- 6006 0040 0223 movs r3, #2
- 6007 0042 C5E0 b .L287
- 6008 .L288:
- 6009 .loc 1 3281 5 discriminator 2
- 6010 0044 FB68 ldr r3, [r7, #12]
- 6011 0046 0122 movs r2, #1
- 6012 0048 83F84020 strb r2, [r3, #64]
- 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
- 6013 .loc 1 3283 17 is_stmt 1 discriminator 2
- 6014 004c FB68 ldr r3, [r7, #12]
- 6015 004e 2422 movs r2, #36
- 6016 0050 83F84120 strb r2, [r3, #65]
- 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 6017 .loc 1 3284 21 discriminator 2
- 6018 0054 FB68 ldr r3, [r7, #12]
- 6019 0056 0022 movs r2, #0
- 6020 0058 5A64 str r2, [r3, #68]
- 6021 .L299:
- 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
- 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */
- 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
- 6022 .loc 1 3289 29
- 6023 005a FB68 ldr r3, [r7, #12]
- 6024 005c DB68 ldr r3, [r3, #12]
- 6025 005e 012B cmp r3, #1
- 6026 0060 07D1 bne .L289
- 6027 .loc 1 3289 29 is_stmt 0 discriminator 1
- 6028 0062 7B89 ldrh r3, [r7, #10]
- 6029 0064 C3F30903 ubfx r3, r3, #0, #10
- 6030 0068 43F00073 orr r3, r3, #33554432
- 6031 006c 43F40053 orr r3, r3, #8192
- 6032 0070 06E0 b .L290
- 6033 .L289:
- 6034 .loc 1 3289 29 discriminator 2
- 6035 0072 7B89 ldrh r3, [r7, #10]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 165
- 6036 0074 C3F30903 ubfx r3, r3, #0, #10
- 6037 0078 43F00073 orr r3, r3, #33554432
- 6038 007c 43F42053 orr r3, r3, #10240
- 6039 .L290:
- 6040 .loc 1 3289 11 is_stmt 1 discriminator 4
- 6041 0080 FA68 ldr r2, [r7, #12]
- 6042 0082 1268 ldr r2, [r2]
- 6043 .loc 1 3289 27 discriminator 4
- 6044 0084 5360 str r3, [r2, #4]
- 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
- 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
- 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 6045 .loc 1 3293 19 discriminator 4
- 6046 0086 FFF7FEFF bl HAL_GetTick
- 6047 008a B861 str r0, [r7, #24]
- 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
- 6048 .loc 1 3295 14 discriminator 4
- 6049 008c FB68 ldr r3, [r7, #12]
- 6050 008e 1B68 ldr r3, [r3]
- 6051 0090 9B69 ldr r3, [r3, #24]
- 6052 0092 03F02003 and r3, r3, #32
- 6053 0096 202B cmp r3, #32
- 6054 0098 0CBF ite eq
- 6055 009a 0123 moveq r3, #1
- 6056 009c 0023 movne r3, #0
- 6057 009e DBB2 uxtb r3, r3
- 6058 .loc 1 3295 12 discriminator 4
- 6059 00a0 FB77 strb r3, [r7, #31]
- 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
- 6060 .loc 1 3296 14 discriminator 4
- 6061 00a2 FB68 ldr r3, [r7, #12]
- 6062 00a4 1B68 ldr r3, [r3]
- 6063 00a6 9B69 ldr r3, [r3, #24]
- 6064 00a8 03F01003 and r3, r3, #16
- 6065 00ac 102B cmp r3, #16
- 6066 00ae 0CBF ite eq
- 6067 00b0 0123 moveq r3, #1
- 6068 00b2 0023 movne r3, #0
- 6069 00b4 DBB2 uxtb r3, r3
- 6070 .loc 1 3296 12 discriminator 4
- 6071 00b6 BB77 strb r3, [r7, #30]
- 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
- 6072 .loc 1 3298 13 discriminator 4
- 6073 00b8 34E0 b .L291
- 6074 .L295:
- 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
- 6075 .loc 1 3300 12
- 6076 00ba 3B68 ldr r3, [r7]
- 6077 00bc B3F1FF3F cmp r3, #-1
- 6078 00c0 1AD0 beq .L292
- 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
- 6079 .loc 1 3302 17
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 166
- 6080 00c2 FFF7FEFF bl HAL_GetTick
- 6081 00c6 0246 mov r2, r0
- 6082 .loc 1 3302 31
- 6083 00c8 BB69 ldr r3, [r7, #24]
- 6084 00ca D31A subs r3, r2, r3
- 6085 .loc 1 3302 14
- 6086 00cc 3A68 ldr r2, [r7]
- 6087 00ce 9A42 cmp r2, r3
- 6088 00d0 02D3 bcc .L293
- 6089 .loc 1 3302 55 discriminator 1
- 6090 00d2 3B68 ldr r3, [r7]
- 6091 00d4 002B cmp r3, #0
- 6092 00d6 0FD1 bne .L292
- 6093 .L293:
- 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6094 .loc 1 3305 25
- 6095 00d8 FB68 ldr r3, [r7, #12]
- 6096 00da 2022 movs r2, #32
- 6097 00dc 83F84120 strb r2, [r3, #65]
- 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
- 6098 .loc 1 3308 29
- 6099 00e0 FB68 ldr r3, [r7, #12]
- 6100 00e2 5B6C ldr r3, [r3, #68]
- 6101 00e4 43F02002 orr r2, r3, #32
- 6102 00e8 FB68 ldr r3, [r7, #12]
- 6103 00ea 5A64 str r2, [r3, #68]
- 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6104 .loc 1 3311 13
- 6105 00ec FB68 ldr r3, [r7, #12]
- 6106 00ee 0022 movs r2, #0
- 6107 00f0 83F84020 strb r2, [r3, #64]
- 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 6108 .loc 1 3313 20
- 6109 00f4 0123 movs r3, #1
- 6110 00f6 6BE0 b .L287
- 6111 .L292:
- 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
- 6112 .loc 1 3317 16
- 6113 00f8 FB68 ldr r3, [r7, #12]
- 6114 00fa 1B68 ldr r3, [r3]
- 6115 00fc 9B69 ldr r3, [r3, #24]
- 6116 00fe 03F02003 and r3, r3, #32
- 6117 0102 202B cmp r3, #32
- 6118 0104 0CBF ite eq
- 6119 0106 0123 moveq r3, #1
- 6120 0108 0023 movne r3, #0
- 6121 010a DBB2 uxtb r3, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 167
- 6122 .loc 1 3317 14
- 6123 010c FB77 strb r3, [r7, #31]
- 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
- 6124 .loc 1 3318 16
- 6125 010e FB68 ldr r3, [r7, #12]
- 6126 0110 1B68 ldr r3, [r3]
- 6127 0112 9B69 ldr r3, [r3, #24]
- 6128 0114 03F01003 and r3, r3, #16
- 6129 0118 102B cmp r3, #16
- 6130 011a 0CBF ite eq
- 6131 011c 0123 moveq r3, #1
- 6132 011e 0023 movne r3, #0
- 6133 0120 DBB2 uxtb r3, r3
- 6134 .loc 1 3318 14
- 6135 0122 BB77 strb r3, [r7, #30]
- 6136 .L291:
- 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6137 .loc 1 3298 13
- 6138 0124 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2
- 6139 0126 002B cmp r3, #0
- 6140 0128 02D1 bne .L294
- 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6141 .loc 1 3298 30 discriminator 1
- 6142 012a BB7F ldrb r3, [r7, #30] @ zero_extendqisi2
- 6143 012c 002B cmp r3, #0
- 6144 012e C4D0 beq .L295
- 6145 .L294:
- 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
- 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
- 6146 .loc 1 3322 11
- 6147 0130 FB68 ldr r3, [r7, #12]
- 6148 0132 1B68 ldr r3, [r3]
- 6149 0134 9B69 ldr r3, [r3, #24]
- 6150 0136 03F01003 and r3, r3, #16
- 6151 .loc 1 3322 10
- 6152 013a 102B cmp r3, #16
- 6153 013c 1AD0 beq .L296
- 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
- 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
- 6154 .loc 1 3325 13
- 6155 013e BB69 ldr r3, [r7, #24]
- 6156 0140 0093 str r3, [sp]
- 6157 0142 3B68 ldr r3, [r7]
- 6158 0144 0022 movs r2, #0
- 6159 0146 2021 movs r1, #32
- 6160 0148 F868 ldr r0, [r7, #12]
- 6161 014a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 6162 014e 0346 mov r3, r0
- 6163 .loc 1 3325 12
- 6164 0150 002B cmp r3, #0
- 6165 0152 01D0 beq .L297
- 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 6166 .loc 1 3327 18
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 168
- 6167 0154 0123 movs r3, #1
- 6168 0156 3BE0 b .L287
- 6169 .L297:
- 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 6170 .loc 1 3331 9
- 6171 0158 FB68 ldr r3, [r7, #12]
- 6172 015a 1B68 ldr r3, [r3]
- 6173 015c 2022 movs r2, #32
- 6174 015e DA61 str r2, [r3, #28]
- 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */
- 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6175 .loc 1 3334 21
- 6176 0160 FB68 ldr r3, [r7, #12]
- 6177 0162 2022 movs r2, #32
- 6178 0164 83F84120 strb r2, [r3, #65]
- 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6179 .loc 1 3337 9
- 6180 0168 FB68 ldr r3, [r7, #12]
- 6181 016a 0022 movs r2, #0
- 6182 016c 83F84020 strb r2, [r3, #64]
- 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 6183 .loc 1 3339 16
- 6184 0170 0023 movs r3, #0
- 6185 0172 2DE0 b .L287
- 6186 .L296:
- 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
- 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
- 6187 .loc 1 3344 13
- 6188 0174 BB69 ldr r3, [r7, #24]
- 6189 0176 0093 str r3, [sp]
- 6190 0178 3B68 ldr r3, [r7]
- 6191 017a 0022 movs r2, #0
- 6192 017c 2021 movs r1, #32
- 6193 017e F868 ldr r0, [r7, #12]
- 6194 0180 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 6195 0184 0346 mov r3, r0
- 6196 .loc 1 3344 12
- 6197 0186 002B cmp r3, #0
- 6198 0188 01D0 beq .L298
- 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 6199 .loc 1 3346 18
- 6200 018a 0123 movs r3, #1
- 6201 018c 20E0 b .L287
- 6202 .L298:
- 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 169
- 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 6203 .loc 1 3350 9
- 6204 018e FB68 ldr r3, [r7, #12]
- 6205 0190 1B68 ldr r3, [r3]
- 6206 0192 1022 movs r2, #16
- 6207 0194 DA61 str r2, [r3, #28]
- 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
- 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 6208 .loc 1 3353 9
- 6209 0196 FB68 ldr r3, [r7, #12]
- 6210 0198 1B68 ldr r3, [r3]
- 6211 019a 2022 movs r2, #32
- 6212 019c DA61 str r2, [r3, #28]
- 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */
- 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++;
- 6213 .loc 1 3357 17
- 6214 019e 7B69 ldr r3, [r7, #20]
- 6215 01a0 0133 adds r3, r3, #1
- 6216 01a2 7B61 str r3, [r7, #20]
- 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
- 6217 .loc 1 3358 25
- 6218 01a4 7B69 ldr r3, [r7, #20]
- 6219 .loc 1 3358 5
- 6220 01a6 7A68 ldr r2, [r7, #4]
- 6221 01a8 9A42 cmp r2, r3
- 6222 01aa 3FF656AF bhi .L299
- 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6223 .loc 1 3361 17
- 6224 01ae FB68 ldr r3, [r7, #12]
- 6225 01b0 2022 movs r2, #32
- 6226 01b2 83F84120 strb r2, [r3, #65]
- 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
- 6227 .loc 1 3364 21
- 6228 01b6 FB68 ldr r3, [r7, #12]
- 6229 01b8 5B6C ldr r3, [r3, #68]
- 6230 01ba 43F02002 orr r2, r3, #32
- 6231 01be FB68 ldr r3, [r7, #12]
- 6232 01c0 5A64 str r2, [r3, #68]
- 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6233 .loc 1 3367 5
- 6234 01c2 FB68 ldr r3, [r7, #12]
- 6235 01c4 0022 movs r2, #0
- 6236 01c6 83F84020 strb r2, [r3, #64]
- 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 6237 .loc 1 3369 12
- 6238 01ca 0123 movs r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 170
- 6239 01cc 00E0 b .L287
- 6240 .L285:
- 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 6241 .loc 1 3373 12
- 6242 01ce 0223 movs r3, #2
- 6243 .L287:
- 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6244 .loc 1 3375 1
- 6245 01d0 1846 mov r0, r3
- 6246 01d2 2037 adds r7, r7, #32
- 6247 .LCFI115:
- 6248 .cfi_def_cfa_offset 8
- 6249 01d4 BD46 mov sp, r7
- 6250 .LCFI116:
- 6251 .cfi_def_cfa_register 13
- 6252 @ sp needed
- 6253 01d6 80BD pop {r7, pc}
- 6254 .cfi_endproc
- 6255 .LFE152:
- 6257 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
- 6258 .align 1
- 6259 .global HAL_I2C_Master_Seq_Transmit_IT
- 6260 .syntax unified
- 6261 .thumb
- 6262 .thumb_func
- 6264 HAL_I2C_Master_Seq_Transmit_IT:
- 6265 .LFB153:
- 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
- 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6266 .loc 1 3391 1
- 6267 .cfi_startproc
- 6268 @ args = 4, pretend = 0, frame = 32
- 6269 @ frame_needed = 1, uses_anonymous_args = 0
- 6270 0000 80B5 push {r7, lr}
- 6271 .LCFI117:
- 6272 .cfi_def_cfa_offset 8
- 6273 .cfi_offset 7, -8
- 6274 .cfi_offset 14, -4
- 6275 0002 8AB0 sub sp, sp, #40
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 171
- 6276 .LCFI118:
- 6277 .cfi_def_cfa_offset 48
- 6278 0004 02AF add r7, sp, #8
- 6279 .LCFI119:
- 6280 .cfi_def_cfa 7, 40
- 6281 0006 F860 str r0, [r7, #12]
- 6282 0008 7A60 str r2, [r7, #4]
- 6283 000a 1A46 mov r2, r3
- 6284 000c 0B46 mov r3, r1 @ movhi
- 6285 000e 7B81 strh r3, [r7, #10] @ movhi
- 6286 0010 1346 mov r3, r2 @ movhi
- 6287 0012 3B81 strh r3, [r7, #8] @ movhi
- 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
- 6288 .loc 1 3393 12
- 6289 0014 684B ldr r3, .L317
- 6290 0016 BB61 str r3, [r7, #24]
- 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
- 6291 .loc 1 3394 12
- 6292 0018 0023 movs r3, #0
- 6293 001a 7B61 str r3, [r7, #20]
- 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 6294 .loc 1 3397 3
- 6295 001c BB6A ldr r3, [r7, #40]
- 6296 001e 002B cmp r3, #0
- 6297 0020 1ED0 beq .L301
- 6298 .loc 1 3397 3 is_stmt 0 discriminator 1
- 6299 0022 BB6A ldr r3, [r7, #40]
- 6300 0024 B3F1807F cmp r3, #16777216
- 6301 0028 1AD0 beq .L301
- 6302 .loc 1 3397 3 discriminator 2
- 6303 002a BB6A ldr r3, [r7, #40]
- 6304 002c B3F1807F cmp r3, #16777216
- 6305 0030 16D0 beq .L301
- 6306 .loc 1 3397 3 discriminator 3
- 6307 0032 BB6A ldr r3, [r7, #40]
- 6308 0034 B3F1007F cmp r3, #33554432
- 6309 0038 12D0 beq .L301
- 6310 .loc 1 3397 3 discriminator 4
- 6311 003a BB6A ldr r3, [r7, #40]
- 6312 003c B3F1007F cmp r3, #33554432
- 6313 0040 0ED0 beq .L301
- 6314 .loc 1 3397 3 discriminator 5
- 6315 0042 BB6A ldr r3, [r7, #40]
- 6316 0044 002B cmp r3, #0
- 6317 0046 0BD0 beq .L301
- 6318 .loc 1 3397 3 discriminator 6
- 6319 0048 BB6A ldr r3, [r7, #40]
- 6320 004a AA2B cmp r3, #170
- 6321 004c 08D0 beq .L301
- 6322 .loc 1 3397 3 discriminator 7
- 6323 004e BB6A ldr r3, [r7, #40]
- 6324 0050 B3F52A4F cmp r3, #43520
- 6325 0054 04D0 beq .L301
- 6326 .loc 1 3397 3 discriminator 8
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 172
- 6327 0056 40F64551 movw r1, #3397
- 6328 005a 5848 ldr r0, .L317+4
- 6329 005c FFF7FEFF bl assert_failed
- 6330 .L301:
- 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 6331 .loc 1 3399 11 is_stmt 1
- 6332 0060 FB68 ldr r3, [r7, #12]
- 6333 0062 93F84130 ldrb r3, [r3, #65]
- 6334 0066 DBB2 uxtb r3, r3
- 6335 .loc 1 3399 6
- 6336 0068 202B cmp r3, #32
- 6337 006a 40F09F80 bne .L302
- 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 6338 .loc 1 3402 5
- 6339 006e FB68 ldr r3, [r7, #12]
- 6340 0070 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 6341 0074 012B cmp r3, #1
- 6342 0076 01D1 bne .L303
- 6343 .loc 1 3402 5 is_stmt 0 discriminator 1
- 6344 0078 0223 movs r3, #2
- 6345 007a 98E0 b .L304
- 6346 .L303:
- 6347 .loc 1 3402 5 discriminator 2
- 6348 007c FB68 ldr r3, [r7, #12]
- 6349 007e 0122 movs r2, #1
- 6350 0080 83F84020 strb r2, [r3, #64]
- 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 6351 .loc 1 3404 21 is_stmt 1 discriminator 2
- 6352 0084 FB68 ldr r3, [r7, #12]
- 6353 0086 2122 movs r2, #33
- 6354 0088 83F84120 strb r2, [r3, #65]
- 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 6355 .loc 1 3405 21 discriminator 2
- 6356 008c FB68 ldr r3, [r7, #12]
- 6357 008e 1022 movs r2, #16
- 6358 0090 83F84220 strb r2, [r3, #66]
- 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 6359 .loc 1 3406 21 discriminator 2
- 6360 0094 FB68 ldr r3, [r7, #12]
- 6361 0096 0022 movs r2, #0
- 6362 0098 5A64 str r2, [r3, #68]
- 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 6363 .loc 1 3409 23 discriminator 2
- 6364 009a FB68 ldr r3, [r7, #12]
- 6365 009c 7A68 ldr r2, [r7, #4]
- 6366 009e 5A62 str r2, [r3, #36]
- 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 6367 .loc 1 3410 23 discriminator 2
- 6368 00a0 FB68 ldr r3, [r7, #12]
- 6369 00a2 3A89 ldrh r2, [r7, #8] @ movhi
- 6370 00a4 5A85 strh r2, [r3, #42] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 173
- 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 6371 .loc 1 3411 23 discriminator 2
- 6372 00a6 FB68 ldr r3, [r7, #12]
- 6373 00a8 BA6A ldr r2, [r7, #40]
- 6374 00aa DA62 str r2, [r3, #44]
- 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 6375 .loc 1 3412 23 discriminator 2
- 6376 00ac FB68 ldr r3, [r7, #12]
- 6377 00ae 444A ldr r2, .L317+8
- 6378 00b0 5A63 str r2, [r3, #52]
- 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
- 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 6379 .loc 1 3415 13 discriminator 2
- 6380 00b2 FB68 ldr r3, [r7, #12]
- 6381 00b4 5B8D ldrh r3, [r3, #42] @ movhi
- 6382 00b6 9BB2 uxth r3, r3
- 6383 .loc 1 3415 8 discriminator 2
- 6384 00b8 FF2B cmp r3, #255
- 6385 00ba 06D9 bls .L305
- 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 6386 .loc 1 3417 22
- 6387 00bc FB68 ldr r3, [r7, #12]
- 6388 00be FF22 movs r2, #255
- 6389 00c0 1A85 strh r2, [r3, #40] @ movhi
- 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 6390 .loc 1 3418 16
- 6391 00c2 4FF08073 mov r3, #16777216
- 6392 00c6 FB61 str r3, [r7, #28]
- 6393 00c8 07E0 b .L306
- 6394 .L305:
- 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 6395 .loc 1 3422 28
- 6396 00ca FB68 ldr r3, [r7, #12]
- 6397 00cc 5B8D ldrh r3, [r3, #42] @ movhi
- 6398 00ce 9AB2 uxth r2, r3
- 6399 .loc 1 3422 22
- 6400 00d0 FB68 ldr r3, [r7, #12]
- 6401 00d2 1A85 strh r2, [r3, #40] @ movhi
- 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 6402 .loc 1 3423 16
- 6403 00d4 FB68 ldr r3, [r7, #12]
- 6404 00d6 DB6A ldr r3, [r3, #44]
- 6405 00d8 FB61 str r3, [r7, #28]
- 6406 .L306:
- 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
- 6407 .loc 1 3426 14
- 6408 00da FB68 ldr r3, [r7, #12]
- 6409 00dc 1B8D ldrh r3, [r3, #40]
- 6410 .loc 1 3426 8
- 6411 00de 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 174
- 6412 00e0 21D0 beq .L307
- 6413 .loc 1 3426 31 discriminator 1
- 6414 00e2 BB6A ldr r3, [r7, #40]
- 6415 00e4 002B cmp r3, #0
- 6416 00e6 03D0 beq .L308
- 6417 .loc 1 3426 68 discriminator 2
- 6418 00e8 BB6A ldr r3, [r7, #40]
- 6419 00ea B3F1007F cmp r3, #33554432
- 6420 00ee 1AD1 bne .L307
- 6421 .L308:
- 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
- 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 6422 .loc 1 3431 35
- 6423 00f0 FB68 ldr r3, [r7, #12]
- 6424 00f2 5B6A ldr r3, [r3, #36]
- 6425 .loc 1 3431 30
- 6426 00f4 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 6427 .loc 1 3431 11
- 6428 00f6 FB68 ldr r3, [r7, #12]
- 6429 00f8 1B68 ldr r3, [r3]
- 6430 .loc 1 3431 28
- 6431 00fa 9A62 str r2, [r3, #40]
- 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 6432 .loc 1 3434 11
- 6433 00fc FB68 ldr r3, [r7, #12]
- 6434 00fe 5B6A ldr r3, [r3, #36]
- 6435 .loc 1 3434 21
- 6436 0100 5A1C adds r2, r3, #1
- 6437 0102 FB68 ldr r3, [r7, #12]
- 6438 0104 5A62 str r2, [r3, #36]
- 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
- 6439 .loc 1 3436 24
- 6440 0106 FB68 ldr r3, [r7, #12]
- 6441 0108 1B8D ldrh r3, [r3, #40]
- 6442 .loc 1 3436 18
- 6443 010a 7B61 str r3, [r7, #20]
- 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 6444 .loc 1 3437 11
- 6445 010c FB68 ldr r3, [r7, #12]
- 6446 010e 5B8D ldrh r3, [r3, #42] @ movhi
- 6447 0110 9BB2 uxth r3, r3
- 6448 .loc 1 3437 22
- 6449 0112 013B subs r3, r3, #1
- 6450 0114 9AB2 uxth r2, r3
- 6451 0116 FB68 ldr r3, [r7, #12]
- 6452 0118 5A85 strh r2, [r3, #42] @ movhi
- 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 6453 .loc 1 3438 11
- 6454 011a FB68 ldr r3, [r7, #12]
- 6455 011c 1B8D ldrh r3, [r3, #40]
- 6456 .loc 1 3438 21
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 175
- 6457 011e 013B subs r3, r3, #1
- 6458 0120 9AB2 uxth r2, r3
- 6459 0122 FB68 ldr r3, [r7, #12]
- 6460 0124 1A85 strh r2, [r3, #40] @ movhi
- 6461 .L307:
- 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
- 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
- 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
- 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
- 6462 .loc 1 3444 14
- 6463 0126 FB68 ldr r3, [r7, #12]
- 6464 0128 1B6B ldr r3, [r3, #48]
- 6465 .loc 1 3444 8
- 6466 012a 112B cmp r3, #17
- 6467 012c 0ED1 bne .L309
- 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 6468 .loc 1 3445 10
- 6469 012e BB6A ldr r3, [r7, #40]
- 6470 0130 AA2B cmp r3, #170
- 6471 0132 03D0 beq .L310
- 6472 .loc 1 3445 10 is_stmt 0 discriminator 2
- 6473 0134 BB6A ldr r3, [r7, #40]
- 6474 0136 B3F52A4F cmp r3, #43520
- 6475 013a 01D1 bne .L311
- 6476 .L310:
- 6477 .loc 1 3445 10 discriminator 3
- 6478 013c 0123 movs r3, #1
- 6479 013e 00E0 b .L312
- 6480 .L311:
- 6481 .loc 1 3445 10 discriminator 4
- 6482 0140 0023 movs r3, #0
- 6483 .L312:
- 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 6484 .loc 1 3444 59 is_stmt 1
- 6485 0142 002B cmp r3, #0
- 6486 0144 02D1 bne .L309
- 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
- 6487 .loc 1 3447 19
- 6488 0146 0023 movs r3, #0
- 6489 0148 BB61 str r3, [r7, #24]
- 6490 014a 0AE0 b .L313
- 6491 .L309:
- 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
- 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
- 6492 .loc 1 3452 7
- 6493 014c F868 ldr r0, [r7, #12]
- 6494 014e FFF7FEFF bl I2C_ConvertOtherXferOptions
- 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
- 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
- 6495 .loc 1 3455 15
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 176
- 6496 0152 FB68 ldr r3, [r7, #12]
- 6497 0154 5B8D ldrh r3, [r3, #42] @ movhi
- 6498 0156 9BB2 uxth r3, r3
- 6499 .loc 1 3455 10
- 6500 0158 FF2B cmp r3, #255
- 6501 015a 02D8 bhi .L313
- 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 6502 .loc 1 3457 18
- 6503 015c FB68 ldr r3, [r7, #12]
- 6504 015e DB6A ldr r3, [r3, #44]
- 6505 0160 FB61 str r3, [r7, #28]
- 6506 .L313:
- 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
- 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
- 6507 .loc 1 3462 8
- 6508 0162 BB6A ldr r3, [r7, #40]
- 6509 0164 002B cmp r3, #0
- 6510 0166 03D0 beq .L314
- 6511 .loc 1 3462 42 discriminator 1
- 6512 0168 BB6A ldr r3, [r7, #40]
- 6513 016a B3F1007F cmp r3, #33554432
- 6514 016e 09D1 bne .L315
- 6515 .L314:
- 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
- 6516 .loc 1 3464 7
- 6517 0170 7B69 ldr r3, [r7, #20]
- 6518 0172 DAB2 uxtb r2, r3
- 6519 0174 7989 ldrh r1, [r7, #10]
- 6520 0176 BB69 ldr r3, [r7, #24]
- 6521 0178 0093 str r3, [sp]
- 6522 017a FB69 ldr r3, [r7, #28]
- 6523 017c F868 ldr r0, [r7, #12]
- 6524 017e FFF7FEFF bl I2C_TransferConfig
- 6525 0182 09E0 b .L316
- 6526 .L315:
- 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
- 6527 .loc 1 3468 57
- 6528 0184 FB68 ldr r3, [r7, #12]
- 6529 0186 1B8D ldrh r3, [r3, #40]
- 6530 .loc 1 3468 7
- 6531 0188 DAB2 uxtb r2, r3
- 6532 018a 7989 ldrh r1, [r7, #10]
- 6533 018c BB69 ldr r3, [r7, #24]
- 6534 018e 0093 str r3, [sp]
- 6535 0190 FB69 ldr r3, [r7, #28]
- 6536 0192 F868 ldr r0, [r7, #12]
- 6537 0194 FFF7FEFF bl I2C_TransferConfig
- 6538 .L316:
- 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 177
- 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6539 .loc 1 3472 5
- 6540 0198 FB68 ldr r3, [r7, #12]
- 6541 019a 0022 movs r2, #0
- 6542 019c 83F84020 strb r2, [r3, #64]
- 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 6543 .loc 1 3481 5
- 6544 01a0 0121 movs r1, #1
- 6545 01a2 F868 ldr r0, [r7, #12]
- 6546 01a4 FFF7FEFF bl I2C_Enable_IRQ
- 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 6547 .loc 1 3483 12
- 6548 01a8 0023 movs r3, #0
- 6549 01aa 00E0 b .L304
- 6550 .L302:
- 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 6551 .loc 1 3487 12
- 6552 01ac 0223 movs r3, #2
- 6553 .L304:
- 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6554 .loc 1 3489 1
- 6555 01ae 1846 mov r0, r3
- 6556 01b0 2037 adds r7, r7, #32
- 6557 .LCFI120:
- 6558 .cfi_def_cfa_offset 8
- 6559 01b2 BD46 mov sp, r7
- 6560 .LCFI121:
- 6561 .cfi_def_cfa_register 13
- 6562 @ sp needed
- 6563 01b4 80BD pop {r7, pc}
- 6564 .L318:
- 6565 01b6 00BF .align 2
- 6566 .L317:
- 6567 01b8 00200080 .word -2147475456
- 6568 01bc 00000000 .word .LC0
- 6569 01c0 00000000 .word I2C_Master_ISR_IT
- 6570 .cfi_endproc
- 6571 .LFE153:
- 6573 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
- 6574 .align 1
- 6575 .global HAL_I2C_Master_Seq_Transmit_DMA
- 6576 .syntax unified
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 178
- 6577 .thumb
- 6578 .thumb_func
- 6580 HAL_I2C_Master_Seq_Transmit_DMA:
- 6581 .LFB154:
- 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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.
- 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
- 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6582 .loc 1 3505 1
- 6583 .cfi_startproc
- 6584 @ args = 4, pretend = 0, frame = 32
- 6585 @ frame_needed = 1, uses_anonymous_args = 0
- 6586 0000 80B5 push {r7, lr}
- 6587 .LCFI122:
- 6588 .cfi_def_cfa_offset 8
- 6589 .cfi_offset 7, -8
- 6590 .cfi_offset 14, -4
- 6591 0002 8AB0 sub sp, sp, #40
- 6592 .LCFI123:
- 6593 .cfi_def_cfa_offset 48
- 6594 0004 02AF add r7, sp, #8
- 6595 .LCFI124:
- 6596 .cfi_def_cfa 7, 40
- 6597 0006 F860 str r0, [r7, #12]
- 6598 0008 7A60 str r2, [r7, #4]
- 6599 000a 1A46 mov r2, r3
- 6600 000c 0B46 mov r3, r1 @ movhi
- 6601 000e 7B81 strh r3, [r7, #10] @ movhi
- 6602 0010 1346 mov r3, r2 @ movhi
- 6603 0012 3B81 strh r3, [r7, #8] @ movhi
- 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
- 6604 .loc 1 3507 12
- 6605 0014 8D4B ldr r3, .L345
- 6606 0016 BB61 str r3, [r7, #24]
- 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
- 6607 .loc 1 3509 12
- 6608 0018 0023 movs r3, #0
- 6609 001a 7B61 str r3, [r7, #20]
- 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 6610 .loc 1 3512 3
- 6611 001c BB6A ldr r3, [r7, #40]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 179
- 6612 001e 002B cmp r3, #0
- 6613 0020 1ED0 beq .L320
- 6614 .loc 1 3512 3 is_stmt 0 discriminator 1
- 6615 0022 BB6A ldr r3, [r7, #40]
- 6616 0024 B3F1807F cmp r3, #16777216
- 6617 0028 1AD0 beq .L320
- 6618 .loc 1 3512 3 discriminator 2
- 6619 002a BB6A ldr r3, [r7, #40]
- 6620 002c B3F1807F cmp r3, #16777216
- 6621 0030 16D0 beq .L320
- 6622 .loc 1 3512 3 discriminator 3
- 6623 0032 BB6A ldr r3, [r7, #40]
- 6624 0034 B3F1007F cmp r3, #33554432
- 6625 0038 12D0 beq .L320
- 6626 .loc 1 3512 3 discriminator 4
- 6627 003a BB6A ldr r3, [r7, #40]
- 6628 003c B3F1007F cmp r3, #33554432
- 6629 0040 0ED0 beq .L320
- 6630 .loc 1 3512 3 discriminator 5
- 6631 0042 BB6A ldr r3, [r7, #40]
- 6632 0044 002B cmp r3, #0
- 6633 0046 0BD0 beq .L320
- 6634 .loc 1 3512 3 discriminator 6
- 6635 0048 BB6A ldr r3, [r7, #40]
- 6636 004a AA2B cmp r3, #170
- 6637 004c 08D0 beq .L320
- 6638 .loc 1 3512 3 discriminator 7
- 6639 004e BB6A ldr r3, [r7, #40]
- 6640 0050 B3F52A4F cmp r3, #43520
- 6641 0054 04D0 beq .L320
- 6642 .loc 1 3512 3 discriminator 8
- 6643 0056 40F6B851 movw r1, #3512
- 6644 005a 7D48 ldr r0, .L345+4
- 6645 005c FFF7FEFF bl assert_failed
- 6646 .L320:
- 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 6647 .loc 1 3514 11 is_stmt 1
- 6648 0060 FB68 ldr r3, [r7, #12]
- 6649 0062 93F84130 ldrb r3, [r3, #65]
- 6650 0066 DBB2 uxtb r3, r3
- 6651 .loc 1 3514 6
- 6652 0068 202B cmp r3, #32
- 6653 006a 40F03581 bne .L321
- 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 6654 .loc 1 3517 5
- 6655 006e FB68 ldr r3, [r7, #12]
- 6656 0070 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 6657 0074 012B cmp r3, #1
- 6658 0076 01D1 bne .L322
- 6659 .loc 1 3517 5 is_stmt 0 discriminator 1
- 6660 0078 0223 movs r3, #2
- 6661 007a 2EE1 b .L323
- 6662 .L322:
- 6663 .loc 1 3517 5 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 180
- 6664 007c FB68 ldr r3, [r7, #12]
- 6665 007e 0122 movs r2, #1
- 6666 0080 83F84020 strb r2, [r3, #64]
- 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
- 6667 .loc 1 3519 21 is_stmt 1 discriminator 2
- 6668 0084 FB68 ldr r3, [r7, #12]
- 6669 0086 2122 movs r2, #33
- 6670 0088 83F84120 strb r2, [r3, #65]
- 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 6671 .loc 1 3520 21 discriminator 2
- 6672 008c FB68 ldr r3, [r7, #12]
- 6673 008e 1022 movs r2, #16
- 6674 0090 83F84220 strb r2, [r3, #66]
- 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 6675 .loc 1 3521 21 discriminator 2
- 6676 0094 FB68 ldr r3, [r7, #12]
- 6677 0096 0022 movs r2, #0
- 6678 0098 5A64 str r2, [r3, #68]
- 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 6679 .loc 1 3524 23 discriminator 2
- 6680 009a FB68 ldr r3, [r7, #12]
- 6681 009c 7A68 ldr r2, [r7, #4]
- 6682 009e 5A62 str r2, [r3, #36]
- 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 6683 .loc 1 3525 23 discriminator 2
- 6684 00a0 FB68 ldr r3, [r7, #12]
- 6685 00a2 3A89 ldrh r2, [r7, #8] @ movhi
- 6686 00a4 5A85 strh r2, [r3, #42] @ movhi
- 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 6687 .loc 1 3526 23 discriminator 2
- 6688 00a6 FB68 ldr r3, [r7, #12]
- 6689 00a8 BA6A ldr r2, [r7, #40]
- 6690 00aa DA62 str r2, [r3, #44]
- 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
- 6691 .loc 1 3527 23 discriminator 2
- 6692 00ac FB68 ldr r3, [r7, #12]
- 6693 00ae 694A ldr r2, .L345+8
- 6694 00b0 5A63 str r2, [r3, #52]
- 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
- 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 6695 .loc 1 3530 13 discriminator 2
- 6696 00b2 FB68 ldr r3, [r7, #12]
- 6697 00b4 5B8D ldrh r3, [r3, #42] @ movhi
- 6698 00b6 9BB2 uxth r3, r3
- 6699 .loc 1 3530 8 discriminator 2
- 6700 00b8 FF2B cmp r3, #255
- 6701 00ba 06D9 bls .L324
- 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 6702 .loc 1 3532 22
- 6703 00bc FB68 ldr r3, [r7, #12]
- 6704 00be FF22 movs r2, #255
- 6705 00c0 1A85 strh r2, [r3, #40] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 181
- 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 6706 .loc 1 3533 16
- 6707 00c2 4FF08073 mov r3, #16777216
- 6708 00c6 FB61 str r3, [r7, #28]
- 6709 00c8 07E0 b .L325
- 6710 .L324:
- 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 6711 .loc 1 3537 28
- 6712 00ca FB68 ldr r3, [r7, #12]
- 6713 00cc 5B8D ldrh r3, [r3, #42] @ movhi
- 6714 00ce 9AB2 uxth r2, r3
- 6715 .loc 1 3537 22
- 6716 00d0 FB68 ldr r3, [r7, #12]
- 6717 00d2 1A85 strh r2, [r3, #40] @ movhi
- 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 6718 .loc 1 3538 16
- 6719 00d4 FB68 ldr r3, [r7, #12]
- 6720 00d6 DB6A ldr r3, [r3, #44]
- 6721 00d8 FB61 str r3, [r7, #28]
- 6722 .L325:
- 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
- 6723 .loc 1 3541 14
- 6724 00da FB68 ldr r3, [r7, #12]
- 6725 00dc 1B8D ldrh r3, [r3, #40]
- 6726 .loc 1 3541 8
- 6727 00de 002B cmp r3, #0
- 6728 00e0 21D0 beq .L326
- 6729 .loc 1 3541 31 discriminator 1
- 6730 00e2 BB6A ldr r3, [r7, #40]
- 6731 00e4 002B cmp r3, #0
- 6732 00e6 03D0 beq .L327
- 6733 .loc 1 3541 68 discriminator 2
- 6734 00e8 BB6A ldr r3, [r7, #40]
- 6735 00ea B3F1007F cmp r3, #33554432
- 6736 00ee 1AD1 bne .L326
- 6737 .L327:
- 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
- 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
- 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 6738 .loc 1 3546 35
- 6739 00f0 FB68 ldr r3, [r7, #12]
- 6740 00f2 5B6A ldr r3, [r3, #36]
- 6741 .loc 1 3546 30
- 6742 00f4 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 6743 .loc 1 3546 11
- 6744 00f6 FB68 ldr r3, [r7, #12]
- 6745 00f8 1B68 ldr r3, [r3]
- 6746 .loc 1 3546 28
- 6747 00fa 9A62 str r2, [r3, #40]
- 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 182
- 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 6748 .loc 1 3549 11
- 6749 00fc FB68 ldr r3, [r7, #12]
- 6750 00fe 5B6A ldr r3, [r3, #36]
- 6751 .loc 1 3549 21
- 6752 0100 5A1C adds r2, r3, #1
- 6753 0102 FB68 ldr r3, [r7, #12]
- 6754 0104 5A62 str r2, [r3, #36]
- 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
- 6755 .loc 1 3551 24
- 6756 0106 FB68 ldr r3, [r7, #12]
- 6757 0108 1B8D ldrh r3, [r3, #40]
- 6758 .loc 1 3551 18
- 6759 010a 7B61 str r3, [r7, #20]
- 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 6760 .loc 1 3552 11
- 6761 010c FB68 ldr r3, [r7, #12]
- 6762 010e 5B8D ldrh r3, [r3, #42] @ movhi
- 6763 0110 9BB2 uxth r3, r3
- 6764 .loc 1 3552 22
- 6765 0112 013B subs r3, r3, #1
- 6766 0114 9AB2 uxth r2, r3
- 6767 0116 FB68 ldr r3, [r7, #12]
- 6768 0118 5A85 strh r2, [r3, #42] @ movhi
- 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 6769 .loc 1 3553 11
- 6770 011a FB68 ldr r3, [r7, #12]
- 6771 011c 1B8D ldrh r3, [r3, #40]
- 6772 .loc 1 3553 21
- 6773 011e 013B subs r3, r3, #1
- 6774 0120 9AB2 uxth r2, r3
- 6775 0122 FB68 ldr r3, [r7, #12]
- 6776 0124 1A85 strh r2, [r3, #40] @ movhi
- 6777 .L326:
- 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
- 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
- 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
- 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
- 6778 .loc 1 3559 14
- 6779 0126 FB68 ldr r3, [r7, #12]
- 6780 0128 1B6B ldr r3, [r3, #48]
- 6781 .loc 1 3559 8
- 6782 012a 112B cmp r3, #17
- 6783 012c 0ED1 bne .L328
- 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 6784 .loc 1 3560 10
- 6785 012e BB6A ldr r3, [r7, #40]
- 6786 0130 AA2B cmp r3, #170
- 6787 0132 03D0 beq .L329
- 6788 .loc 1 3560 10 is_stmt 0 discriminator 2
- 6789 0134 BB6A ldr r3, [r7, #40]
- 6790 0136 B3F52A4F cmp r3, #43520
- 6791 013a 01D1 bne .L330
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 183
- 6792 .L329:
- 6793 .loc 1 3560 10 discriminator 3
- 6794 013c 0123 movs r3, #1
- 6795 013e 00E0 b .L331
- 6796 .L330:
- 6797 .loc 1 3560 10 discriminator 4
- 6798 0140 0023 movs r3, #0
- 6799 .L331:
- 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 6800 .loc 1 3559 59 is_stmt 1
- 6801 0142 002B cmp r3, #0
- 6802 0144 02D1 bne .L328
- 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
- 6803 .loc 1 3562 19
- 6804 0146 0023 movs r3, #0
- 6805 0148 BB61 str r3, [r7, #24]
- 6806 014a 0AE0 b .L332
- 6807 .L328:
- 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
- 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
- 6808 .loc 1 3567 7
- 6809 014c F868 ldr r0, [r7, #12]
- 6810 014e FFF7FEFF bl I2C_ConvertOtherXferOptions
- 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
- 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
- 6811 .loc 1 3570 15
- 6812 0152 FB68 ldr r3, [r7, #12]
- 6813 0154 5B8D ldrh r3, [r3, #42] @ movhi
- 6814 0156 9BB2 uxth r3, r3
- 6815 .loc 1 3570 10
- 6816 0158 FF2B cmp r3, #255
- 6817 015a 02D8 bhi .L332
- 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 6818 .loc 1 3572 18
- 6819 015c FB68 ldr r3, [r7, #12]
- 6820 015e DB6A ldr r3, [r3, #44]
- 6821 0160 FB61 str r3, [r7, #28]
- 6822 .L332:
- 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 6823 .loc 1 3576 13
- 6824 0162 FB68 ldr r3, [r7, #12]
- 6825 0164 1B8D ldrh r3, [r3, #40]
- 6826 .loc 1 3576 8
- 6827 0166 002B cmp r3, #0
- 6828 0168 00F08E80 beq .L333
- 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 6829 .loc 1 3578 15
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 184
- 6830 016c FB68 ldr r3, [r7, #12]
- 6831 016e 9B6B ldr r3, [r3, #56]
- 6832 .loc 1 3578 10
- 6833 0170 002B cmp r3, #0
- 6834 0172 22D0 beq .L334
- 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
- 6835 .loc 1 3581 13
- 6836 0174 FB68 ldr r3, [r7, #12]
- 6837 0176 9B6B ldr r3, [r3, #56]
- 6838 .loc 1 3581 40
- 6839 0178 374A ldr r2, .L345+12
- 6840 017a 9A62 str r2, [r3, #40]
- 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
- 6841 .loc 1 3584 13
- 6842 017c FB68 ldr r3, [r7, #12]
- 6843 017e 9B6B ldr r3, [r3, #56]
- 6844 .loc 1 3584 41
- 6845 0180 364A ldr r2, .L345+16
- 6846 0182 1A63 str r2, [r3, #48]
- 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
- 6847 .loc 1 3587 13
- 6848 0184 FB68 ldr r3, [r7, #12]
- 6849 0186 9B6B ldr r3, [r3, #56]
- 6850 .loc 1 3587 44
- 6851 0188 0022 movs r2, #0
- 6852 018a DA62 str r2, [r3, #44]
- 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
- 6853 .loc 1 3588 13
- 6854 018c FB68 ldr r3, [r7, #12]
- 6855 018e 9B6B ldr r3, [r3, #56]
- 6856 .loc 1 3588 41
- 6857 0190 0022 movs r2, #0
- 6858 0192 5A63 str r2, [r3, #52]
- 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
- 6859 .loc 1 3591 25
- 6860 0194 FB68 ldr r3, [r7, #12]
- 6861 0196 986B ldr r0, [r3, #56]
- 6862 .loc 1 3591 70
- 6863 0198 FB68 ldr r3, [r7, #12]
- 6864 019a 5B6A ldr r3, [r3, #36]
- 6865 .loc 1 3591 25
- 6866 019c 1946 mov r1, r3
- 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
- 6867 .loc 1 3592 57
- 6868 019e FB68 ldr r3, [r7, #12]
- 6869 01a0 1B68 ldr r3, [r3]
- 6870 .loc 1 3592 52
- 6871 01a2 2833 adds r3, r3, #40
- 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 185
- 6872 .loc 1 3591 25
- 6873 01a4 1A46 mov r2, r3
- 6874 .loc 1 3592 79
- 6875 01a6 FB68 ldr r3, [r7, #12]
- 6876 01a8 1B8D ldrh r3, [r3, #40]
- 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
- 6877 .loc 1 3591 25
- 6878 01aa FFF7FEFF bl HAL_DMA_Start_IT
- 6879 01ae 0346 mov r3, r0
- 6880 01b0 FB74 strb r3, [r7, #19]
- 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 6881 .loc 1 3609 10
- 6882 01b2 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
- 6883 01b4 002B cmp r3, #0
- 6884 01b6 53D1 bne .L336
- 6885 01b8 13E0 b .L344
- 6886 .L334:
- 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 6887 .loc 1 3597 25
- 6888 01ba FB68 ldr r3, [r7, #12]
- 6889 01bc 2022 movs r2, #32
- 6890 01be 83F84120 strb r2, [r3, #65]
- 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6891 .loc 1 3598 25
- 6892 01c2 FB68 ldr r3, [r7, #12]
- 6893 01c4 0022 movs r2, #0
- 6894 01c6 83F84220 strb r2, [r3, #66]
- 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6895 .loc 1 3601 25
- 6896 01ca FB68 ldr r3, [r7, #12]
- 6897 01cc 5B6C ldr r3, [r3, #68]
- 6898 01ce 43F08002 orr r2, r3, #128
- 6899 01d2 FB68 ldr r3, [r7, #12]
- 6900 01d4 5A64 str r2, [r3, #68]
- 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6901 .loc 1 3604 9
- 6902 01d6 FB68 ldr r3, [r7, #12]
- 6903 01d8 0022 movs r2, #0
- 6904 01da 83F84020 strb r2, [r3, #64]
- 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6905 .loc 1 3606 16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 186
- 6906 01de 0123 movs r3, #1
- 6907 01e0 7BE0 b .L323
- 6908 .L344:
- 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
- 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
- 6909 .loc 1 3612 12
- 6910 01e2 BB6A ldr r3, [r7, #40]
- 6911 01e4 002B cmp r3, #0
- 6912 01e6 03D0 beq .L337
- 6913 .loc 1 3612 46 discriminator 1
- 6914 01e8 BB6A ldr r3, [r7, #40]
- 6915 01ea B3F1007F cmp r3, #33554432
- 6916 01ee 09D1 bne .L338
- 6917 .L337:
- 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
- 6918 .loc 1 3614 11
- 6919 01f0 7B69 ldr r3, [r7, #20]
- 6920 01f2 DAB2 uxtb r2, r3
- 6921 01f4 7989 ldrh r1, [r7, #10]
- 6922 01f6 BB69 ldr r3, [r7, #24]
- 6923 01f8 0093 str r3, [sp]
- 6924 01fa FB69 ldr r3, [r7, #28]
- 6925 01fc F868 ldr r0, [r7, #12]
- 6926 01fe FFF7FEFF bl I2C_TransferConfig
- 6927 0202 09E0 b .L339
- 6928 .L338:
- 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
- 6929 .loc 1 3618 61
- 6930 0204 FB68 ldr r3, [r7, #12]
- 6931 0206 1B8D ldrh r3, [r3, #40]
- 6932 .loc 1 3618 11
- 6933 0208 DAB2 uxtb r2, r3
- 6934 020a 7989 ldrh r1, [r7, #10]
- 6935 020c BB69 ldr r3, [r7, #24]
- 6936 020e 0093 str r3, [sp]
- 6937 0210 FB69 ldr r3, [r7, #28]
- 6938 0212 F868 ldr r0, [r7, #12]
- 6939 0214 FFF7FEFF bl I2C_TransferConfig
- 6940 .L339:
- 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 6941 .loc 1 3622 25
- 6942 0218 FB68 ldr r3, [r7, #12]
- 6943 021a 5B8D ldrh r3, [r3, #42] @ movhi
- 6944 021c 9AB2 uxth r2, r3
- 6945 .loc 1 3622 32
- 6946 021e FB68 ldr r3, [r7, #12]
- 6947 0220 1B8D ldrh r3, [r3, #40]
- 6948 .loc 1 3622 25
- 6949 0222 D31A subs r3, r2, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 187
- 6950 0224 9AB2 uxth r2, r3
- 6951 0226 FB68 ldr r3, [r7, #12]
- 6952 0228 5A85 strh r2, [r3, #42] @ movhi
- 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6953 .loc 1 3625 9
- 6954 022a FB68 ldr r3, [r7, #12]
- 6955 022c 0022 movs r2, #0
- 6956 022e 83F84020 strb r2, [r3, #64]
- 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
- 6957 .loc 1 3631 9
- 6958 0232 1021 movs r1, #16
- 6959 0234 F868 ldr r0, [r7, #12]
- 6960 0236 FFF7FEFF bl I2C_Enable_IRQ
- 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 6961 .loc 1 3634 13
- 6962 023a FB68 ldr r3, [r7, #12]
- 6963 023c 1B68 ldr r3, [r3]
- 6964 .loc 1 3634 29
- 6965 023e 1A68 ldr r2, [r3]
- 6966 .loc 1 3634 13
- 6967 0240 FB68 ldr r3, [r7, #12]
- 6968 0242 1B68 ldr r3, [r3]
- 6969 .loc 1 3634 29
- 6970 0244 42F48042 orr r2, r2, #16384
- 6971 0248 1A60 str r2, [r3]
- 6972 024a 43E0 b .L340
- 6973 .L346:
- 6974 .align 2
- 6975 .L345:
- 6976 024c 00200080 .word -2147475456
- 6977 0250 00000000 .word .LC0
- 6978 0254 00000000 .word I2C_Master_ISR_DMA
- 6979 0258 00000000 .word I2C_DMAMasterTransmitCplt
- 6980 025c 00000000 .word I2C_DMAError
- 6981 .L336:
- 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6982 .loc 1 3639 25
- 6983 0260 FB68 ldr r3, [r7, #12]
- 6984 0262 2022 movs r2, #32
- 6985 0264 83F84120 strb r2, [r3, #65]
- 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 6986 .loc 1 3640 25
- 6987 0268 FB68 ldr r3, [r7, #12]
- 6988 026a 0022 movs r2, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 188
- 6989 026c 83F84220 strb r2, [r3, #66]
- 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 6990 .loc 1 3643 25
- 6991 0270 FB68 ldr r3, [r7, #12]
- 6992 0272 5B6C ldr r3, [r3, #68]
- 6993 0274 43F01002 orr r2, r3, #16
- 6994 0278 FB68 ldr r3, [r7, #12]
- 6995 027a 5A64 str r2, [r3, #68]
- 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6996 .loc 1 3646 9
- 6997 027c FB68 ldr r3, [r7, #12]
- 6998 027e 0022 movs r2, #0
- 6999 0280 83F84020 strb r2, [r3, #64]
- 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 7000 .loc 1 3648 16
- 7001 0284 0123 movs r3, #1
- 7002 0286 28E0 b .L323
- 7003 .L333:
- 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
- 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 7004 .loc 1 3654 21
- 7005 0288 FB68 ldr r3, [r7, #12]
- 7006 028a 164A ldr r2, .L347
- 7007 028c 5A63 str r2, [r3, #52]
- 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
- 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
- 7008 .loc 1 3658 10
- 7009 028e BB6A ldr r3, [r7, #40]
- 7010 0290 002B cmp r3, #0
- 7011 0292 03D0 beq .L341
- 7012 .loc 1 3658 44 discriminator 1
- 7013 0294 BB6A ldr r3, [r7, #40]
- 7014 0296 B3F1007F cmp r3, #33554432
- 7015 029a 09D1 bne .L342
- 7016 .L341:
- 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
- 7017 .loc 1 3660 9
- 7018 029c 7B69 ldr r3, [r7, #20]
- 7019 029e DAB2 uxtb r2, r3
- 7020 02a0 7989 ldrh r1, [r7, #10]
- 7021 02a2 BB69 ldr r3, [r7, #24]
- 7022 02a4 0093 str r3, [sp]
- 7023 02a6 FB69 ldr r3, [r7, #28]
- 7024 02a8 F868 ldr r0, [r7, #12]
- 7025 02aa FFF7FEFF bl I2C_TransferConfig
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 189
- 7026 02ae 09E0 b .L343
- 7027 .L342:
- 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
- 7028 .loc 1 3664 59
- 7029 02b0 FB68 ldr r3, [r7, #12]
- 7030 02b2 1B8D ldrh r3, [r3, #40]
- 7031 .loc 1 3664 9
- 7032 02b4 DAB2 uxtb r2, r3
- 7033 02b6 7989 ldrh r1, [r7, #10]
- 7034 02b8 BB69 ldr r3, [r7, #24]
- 7035 02ba 0093 str r3, [sp]
- 7036 02bc FB69 ldr r3, [r7, #28]
- 7037 02be F868 ldr r0, [r7, #12]
- 7038 02c0 FFF7FEFF bl I2C_TransferConfig
- 7039 .L343:
- 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 7040 .loc 1 3668 7
- 7041 02c4 FB68 ldr r3, [r7, #12]
- 7042 02c6 0022 movs r2, #0
- 7043 02c8 83F84020 strb r2, [r3, #64]
- 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
- 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
- 7044 .loc 1 3677 7
- 7045 02cc 0121 movs r1, #1
- 7046 02ce F868 ldr r0, [r7, #12]
- 7047 02d0 FFF7FEFF bl I2C_Enable_IRQ
- 7048 .L340:
- 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 7049 .loc 1 3680 12
- 7050 02d4 0023 movs r3, #0
- 7051 02d6 00E0 b .L323
- 7052 .L321:
- 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 7053 .loc 1 3684 12
- 7054 02d8 0223 movs r3, #2
- 7055 .L323:
- 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7056 .loc 1 3686 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 190
- 7057 02da 1846 mov r0, r3
- 7058 02dc 2037 adds r7, r7, #32
- 7059 .LCFI125:
- 7060 .cfi_def_cfa_offset 8
- 7061 02de BD46 mov sp, r7
- 7062 .LCFI126:
- 7063 .cfi_def_cfa_register 13
- 7064 @ sp needed
- 7065 02e0 80BD pop {r7, pc}
- 7066 .L348:
- 7067 02e2 00BF .align 2
- 7068 .L347:
- 7069 02e4 00000000 .word I2C_Master_ISR_IT
- 7070 .cfi_endproc
- 7071 .LFE154:
- 7073 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
- 7074 .align 1
- 7075 .global HAL_I2C_Master_Seq_Receive_IT
- 7076 .syntax unified
- 7077 .thumb
- 7078 .thumb_func
- 7080 HAL_I2C_Master_Seq_Receive_IT:
- 7081 .LFB155:
- 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
- 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7082 .loc 1 3702 1
- 7083 .cfi_startproc
- 7084 @ args = 4, pretend = 0, frame = 24
- 7085 @ frame_needed = 1, uses_anonymous_args = 0
- 7086 0000 80B5 push {r7, lr}
- 7087 .LCFI127:
- 7088 .cfi_def_cfa_offset 8
- 7089 .cfi_offset 7, -8
- 7090 .cfi_offset 14, -4
- 7091 0002 88B0 sub sp, sp, #32
- 7092 .LCFI128:
- 7093 .cfi_def_cfa_offset 40
- 7094 0004 02AF add r7, sp, #8
- 7095 .LCFI129:
- 7096 .cfi_def_cfa 7, 32
- 7097 0006 F860 str r0, [r7, #12]
- 7098 0008 7A60 str r2, [r7, #4]
- 7099 000a 1A46 mov r2, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 191
- 7100 000c 0B46 mov r3, r1 @ movhi
- 7101 000e 7B81 strh r3, [r7, #10] @ movhi
- 7102 0010 1346 mov r3, r2 @ movhi
- 7103 0012 3B81 strh r3, [r7, #8] @ movhi
- 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
- 7104 .loc 1 3704 12
- 7105 0014 4B4B ldr r3, .L361
- 7106 0016 3B61 str r3, [r7, #16]
- 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 7107 .loc 1 3707 3
- 7108 0018 3B6A ldr r3, [r7, #32]
- 7109 001a 002B cmp r3, #0
- 7110 001c 1ED0 beq .L350
- 7111 .loc 1 3707 3 is_stmt 0 discriminator 1
- 7112 001e 3B6A ldr r3, [r7, #32]
- 7113 0020 B3F1807F cmp r3, #16777216
- 7114 0024 1AD0 beq .L350
- 7115 .loc 1 3707 3 discriminator 2
- 7116 0026 3B6A ldr r3, [r7, #32]
- 7117 0028 B3F1807F cmp r3, #16777216
- 7118 002c 16D0 beq .L350
- 7119 .loc 1 3707 3 discriminator 3
- 7120 002e 3B6A ldr r3, [r7, #32]
- 7121 0030 B3F1007F cmp r3, #33554432
- 7122 0034 12D0 beq .L350
- 7123 .loc 1 3707 3 discriminator 4
- 7124 0036 3B6A ldr r3, [r7, #32]
- 7125 0038 B3F1007F cmp r3, #33554432
- 7126 003c 0ED0 beq .L350
- 7127 .loc 1 3707 3 discriminator 5
- 7128 003e 3B6A ldr r3, [r7, #32]
- 7129 0040 002B cmp r3, #0
- 7130 0042 0BD0 beq .L350
- 7131 .loc 1 3707 3 discriminator 6
- 7132 0044 3B6A ldr r3, [r7, #32]
- 7133 0046 AA2B cmp r3, #170
- 7134 0048 08D0 beq .L350
- 7135 .loc 1 3707 3 discriminator 7
- 7136 004a 3B6A ldr r3, [r7, #32]
- 7137 004c B3F52A4F cmp r3, #43520
- 7138 0050 04D0 beq .L350
- 7139 .loc 1 3707 3 discriminator 8
- 7140 0052 40F67B61 movw r1, #3707
- 7141 0056 3C48 ldr r0, .L361+4
- 7142 0058 FFF7FEFF bl assert_failed
- 7143 .L350:
- 3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 7144 .loc 1 3709 11 is_stmt 1
- 7145 005c FB68 ldr r3, [r7, #12]
- 7146 005e 93F84130 ldrb r3, [r3, #65]
- 7147 0062 DBB2 uxtb r3, r3
- 7148 .loc 1 3709 6
- 7149 0064 202B cmp r3, #32
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 192
- 7150 0066 67D1 bne .L351
- 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 7151 .loc 1 3712 5
- 7152 0068 FB68 ldr r3, [r7, #12]
- 7153 006a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 7154 006e 012B cmp r3, #1
- 7155 0070 01D1 bne .L352
- 7156 .loc 1 3712 5 is_stmt 0 discriminator 1
- 7157 0072 0223 movs r3, #2
- 7158 0074 61E0 b .L353
- 7159 .L352:
- 7160 .loc 1 3712 5 discriminator 2
- 7161 0076 FB68 ldr r3, [r7, #12]
- 7162 0078 0122 movs r2, #1
- 7163 007a 83F84020 strb r2, [r3, #64]
- 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 7164 .loc 1 3714 21 is_stmt 1 discriminator 2
- 7165 007e FB68 ldr r3, [r7, #12]
- 7166 0080 2222 movs r2, #34
- 7167 0082 83F84120 strb r2, [r3, #65]
- 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 7168 .loc 1 3715 21 discriminator 2
- 7169 0086 FB68 ldr r3, [r7, #12]
- 7170 0088 1022 movs r2, #16
- 7171 008a 83F84220 strb r2, [r3, #66]
- 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 7172 .loc 1 3716 21 discriminator 2
- 7173 008e FB68 ldr r3, [r7, #12]
- 7174 0090 0022 movs r2, #0
- 7175 0092 5A64 str r2, [r3, #68]
- 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 7176 .loc 1 3719 23 discriminator 2
- 7177 0094 FB68 ldr r3, [r7, #12]
- 7178 0096 7A68 ldr r2, [r7, #4]
- 7179 0098 5A62 str r2, [r3, #36]
- 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 7180 .loc 1 3720 23 discriminator 2
- 7181 009a FB68 ldr r3, [r7, #12]
- 7182 009c 3A89 ldrh r2, [r7, #8] @ movhi
- 7183 009e 5A85 strh r2, [r3, #42] @ movhi
- 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 7184 .loc 1 3721 23 discriminator 2
- 7185 00a0 FB68 ldr r3, [r7, #12]
- 7186 00a2 3A6A ldr r2, [r7, #32]
- 7187 00a4 DA62 str r2, [r3, #44]
- 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 7188 .loc 1 3722 23 discriminator 2
- 7189 00a6 FB68 ldr r3, [r7, #12]
- 7190 00a8 284A ldr r2, .L361+8
- 7191 00aa 5A63 str r2, [r3, #52]
- 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 193
- 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 7192 .loc 1 3725 13 discriminator 2
- 7193 00ac FB68 ldr r3, [r7, #12]
- 7194 00ae 5B8D ldrh r3, [r3, #42] @ movhi
- 7195 00b0 9BB2 uxth r3, r3
- 7196 .loc 1 3725 8 discriminator 2
- 7197 00b2 FF2B cmp r3, #255
- 7198 00b4 06D9 bls .L354
- 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 7199 .loc 1 3727 22
- 7200 00b6 FB68 ldr r3, [r7, #12]
- 7201 00b8 FF22 movs r2, #255
- 7202 00ba 1A85 strh r2, [r3, #40] @ movhi
- 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 7203 .loc 1 3728 16
- 7204 00bc 4FF08073 mov r3, #16777216
- 7205 00c0 7B61 str r3, [r7, #20]
- 7206 00c2 07E0 b .L355
- 7207 .L354:
- 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 7208 .loc 1 3732 28
- 7209 00c4 FB68 ldr r3, [r7, #12]
- 7210 00c6 5B8D ldrh r3, [r3, #42] @ movhi
- 7211 00c8 9AB2 uxth r2, r3
- 7212 .loc 1 3732 22
- 7213 00ca FB68 ldr r3, [r7, #12]
- 7214 00cc 1A85 strh r2, [r3, #40] @ movhi
- 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 7215 .loc 1 3733 16
- 7216 00ce FB68 ldr r3, [r7, #12]
- 7217 00d0 DB6A ldr r3, [r3, #44]
- 7218 00d2 7B61 str r3, [r7, #20]
- 7219 .L355:
- 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
- 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
- 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
- 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
- 7220 .loc 1 3739 14
- 7221 00d4 FB68 ldr r3, [r7, #12]
- 7222 00d6 1B6B ldr r3, [r3, #48]
- 7223 .loc 1 3739 8
- 7224 00d8 122B cmp r3, #18
- 7225 00da 0ED1 bne .L356
- 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 7226 .loc 1 3740 10
- 7227 00dc 3B6A ldr r3, [r7, #32]
- 7228 00de AA2B cmp r3, #170
- 7229 00e0 03D0 beq .L357
- 7230 .loc 1 3740 10 is_stmt 0 discriminator 2
- 7231 00e2 3B6A ldr r3, [r7, #32]
- 7232 00e4 B3F52A4F cmp r3, #43520
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 194
- 7233 00e8 01D1 bne .L358
- 7234 .L357:
- 7235 .loc 1 3740 10 discriminator 3
- 7236 00ea 0123 movs r3, #1
- 7237 00ec 00E0 b .L359
- 7238 .L358:
- 7239 .loc 1 3740 10 discriminator 4
- 7240 00ee 0023 movs r3, #0
- 7241 .L359:
- 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 7242 .loc 1 3739 59 is_stmt 1
- 7243 00f0 002B cmp r3, #0
- 7244 00f2 02D1 bne .L356
- 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
- 7245 .loc 1 3742 19
- 7246 00f4 0023 movs r3, #0
- 7247 00f6 3B61 str r3, [r7, #16]
- 7248 00f8 0AE0 b .L360
- 7249 .L356:
- 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
- 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
- 7250 .loc 1 3747 7
- 7251 00fa F868 ldr r0, [r7, #12]
- 7252 00fc FFF7FEFF bl I2C_ConvertOtherXferOptions
- 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
- 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
- 7253 .loc 1 3750 15
- 7254 0100 FB68 ldr r3, [r7, #12]
- 7255 0102 5B8D ldrh r3, [r3, #42] @ movhi
- 7256 0104 9BB2 uxth r3, r3
- 7257 .loc 1 3750 10
- 7258 0106 FF2B cmp r3, #255
- 7259 0108 02D8 bhi .L360
- 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 7260 .loc 1 3752 18
- 7261 010a FB68 ldr r3, [r7, #12]
- 7262 010c DB6A ldr r3, [r3, #44]
- 7263 010e 7B61 str r3, [r7, #20]
- 7264 .L360:
- 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
- 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
- 7265 .loc 1 3757 55
- 7266 0110 FB68 ldr r3, [r7, #12]
- 7267 0112 1B8D ldrh r3, [r3, #40]
- 7268 .loc 1 3757 5
- 7269 0114 DAB2 uxtb r2, r3
- 7270 0116 7989 ldrh r1, [r7, #10]
- 7271 0118 3B69 ldr r3, [r7, #16]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 195
- 7272 011a 0093 str r3, [sp]
- 7273 011c 7B69 ldr r3, [r7, #20]
- 7274 011e F868 ldr r0, [r7, #12]
- 7275 0120 FFF7FEFF bl I2C_TransferConfig
- 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 7276 .loc 1 3760 5
- 7277 0124 FB68 ldr r3, [r7, #12]
- 7278 0126 0022 movs r2, #0
- 7279 0128 83F84020 strb r2, [r3, #64]
- 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
- 7280 .loc 1 3765 5
- 7281 012c 0221 movs r1, #2
- 7282 012e F868 ldr r0, [r7, #12]
- 7283 0130 FFF7FEFF bl I2C_Enable_IRQ
- 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 7284 .loc 1 3767 12
- 7285 0134 0023 movs r3, #0
- 7286 0136 00E0 b .L353
- 7287 .L351:
- 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 7288 .loc 1 3771 12
- 7289 0138 0223 movs r3, #2
- 7290 .L353:
- 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7291 .loc 1 3773 1
- 7292 013a 1846 mov r0, r3
- 7293 013c 1837 adds r7, r7, #24
- 7294 .LCFI130:
- 7295 .cfi_def_cfa_offset 8
- 7296 013e BD46 mov sp, r7
- 7297 .LCFI131:
- 7298 .cfi_def_cfa_register 13
- 7299 @ sp needed
- 7300 0140 80BD pop {r7, pc}
- 7301 .L362:
- 7302 0142 00BF .align 2
- 7303 .L361:
- 7304 0144 00240080 .word -2147474432
- 7305 0148 00000000 .word .LC0
- 7306 014c 00000000 .word I2C_Master_ISR_IT
- 7307 .cfi_endproc
- 7308 .LFE155:
- 7310 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
- 7311 .align 1
- 7312 .global HAL_I2C_Master_Seq_Receive_DMA
- 7313 .syntax unified
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 196
- 7314 .thumb
- 7315 .thumb_func
- 7317 HAL_I2C_Master_Seq_Receive_DMA:
- 7318 .LFB156:
- 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
- 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7319 .loc 1 3789 1
- 7320 .cfi_startproc
- 7321 @ args = 4, pretend = 0, frame = 32
- 7322 @ frame_needed = 1, uses_anonymous_args = 0
- 7323 0000 80B5 push {r7, lr}
- 7324 .LCFI132:
- 7325 .cfi_def_cfa_offset 8
- 7326 .cfi_offset 7, -8
- 7327 .cfi_offset 14, -4
- 7328 0002 8AB0 sub sp, sp, #40
- 7329 .LCFI133:
- 7330 .cfi_def_cfa_offset 48
- 7331 0004 02AF add r7, sp, #8
- 7332 .LCFI134:
- 7333 .cfi_def_cfa 7, 40
- 7334 0006 F860 str r0, [r7, #12]
- 7335 0008 7A60 str r2, [r7, #4]
- 7336 000a 1A46 mov r2, r3
- 7337 000c 0B46 mov r3, r1 @ movhi
- 7338 000e 7B81 strh r3, [r7, #10] @ movhi
- 7339 0010 1346 mov r3, r2 @ movhi
- 7340 0012 3B81 strh r3, [r7, #8] @ movhi
- 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
- 7341 .loc 1 3791 12
- 7342 0014 884B ldr r3, .L381
- 7343 0016 BB61 str r3, [r7, #24]
- 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 7344 .loc 1 3795 3
- 7345 0018 BB6A ldr r3, [r7, #40]
- 7346 001a 002B cmp r3, #0
- 7347 001c 1ED0 beq .L364
- 7348 .loc 1 3795 3 is_stmt 0 discriminator 1
- 7349 001e BB6A ldr r3, [r7, #40]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 197
- 7350 0020 B3F1807F cmp r3, #16777216
- 7351 0024 1AD0 beq .L364
- 7352 .loc 1 3795 3 discriminator 2
- 7353 0026 BB6A ldr r3, [r7, #40]
- 7354 0028 B3F1807F cmp r3, #16777216
- 7355 002c 16D0 beq .L364
- 7356 .loc 1 3795 3 discriminator 3
- 7357 002e BB6A ldr r3, [r7, #40]
- 7358 0030 B3F1007F cmp r3, #33554432
- 7359 0034 12D0 beq .L364
- 7360 .loc 1 3795 3 discriminator 4
- 7361 0036 BB6A ldr r3, [r7, #40]
- 7362 0038 B3F1007F cmp r3, #33554432
- 7363 003c 0ED0 beq .L364
- 7364 .loc 1 3795 3 discriminator 5
- 7365 003e BB6A ldr r3, [r7, #40]
- 7366 0040 002B cmp r3, #0
- 7367 0042 0BD0 beq .L364
- 7368 .loc 1 3795 3 discriminator 6
- 7369 0044 BB6A ldr r3, [r7, #40]
- 7370 0046 AA2B cmp r3, #170
- 7371 0048 08D0 beq .L364
- 7372 .loc 1 3795 3 discriminator 7
- 7373 004a BB6A ldr r3, [r7, #40]
- 7374 004c B3F52A4F cmp r3, #43520
- 7375 0050 04D0 beq .L364
- 7376 .loc 1 3795 3 discriminator 8
- 7377 0052 40F6D361 movw r1, #3795
- 7378 0056 7948 ldr r0, .L381+4
- 7379 0058 FFF7FEFF bl assert_failed
- 7380 .L364:
- 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 7381 .loc 1 3797 11 is_stmt 1
- 7382 005c FB68 ldr r3, [r7, #12]
- 7383 005e 93F84130 ldrb r3, [r3, #65]
- 7384 0062 DBB2 uxtb r3, r3
- 7385 .loc 1 3797 6
- 7386 0064 202B cmp r3, #32
- 7387 0066 40F0E180 bne .L365
- 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 7388 .loc 1 3800 5
- 7389 006a FB68 ldr r3, [r7, #12]
- 7390 006c 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 7391 0070 012B cmp r3, #1
- 7392 0072 01D1 bne .L366
- 7393 .loc 1 3800 5 is_stmt 0 discriminator 1
- 7394 0074 0223 movs r3, #2
- 7395 0076 DAE0 b .L367
- 7396 .L366:
- 7397 .loc 1 3800 5 discriminator 2
- 7398 0078 FB68 ldr r3, [r7, #12]
- 7399 007a 0122 movs r2, #1
- 7400 007c 83F84020 strb r2, [r3, #64]
- 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 198
- 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
- 7401 .loc 1 3802 21 is_stmt 1 discriminator 2
- 7402 0080 FB68 ldr r3, [r7, #12]
- 7403 0082 2222 movs r2, #34
- 7404 0084 83F84120 strb r2, [r3, #65]
- 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
- 7405 .loc 1 3803 21 discriminator 2
- 7406 0088 FB68 ldr r3, [r7, #12]
- 7407 008a 1022 movs r2, #16
- 7408 008c 83F84220 strb r2, [r3, #66]
- 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 7409 .loc 1 3804 21 discriminator 2
- 7410 0090 FB68 ldr r3, [r7, #12]
- 7411 0092 0022 movs r2, #0
- 7412 0094 5A64 str r2, [r3, #68]
- 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 7413 .loc 1 3807 23 discriminator 2
- 7414 0096 FB68 ldr r3, [r7, #12]
- 7415 0098 7A68 ldr r2, [r7, #4]
- 7416 009a 5A62 str r2, [r3, #36]
- 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 7417 .loc 1 3808 23 discriminator 2
- 7418 009c FB68 ldr r3, [r7, #12]
- 7419 009e 3A89 ldrh r2, [r7, #8] @ movhi
- 7420 00a0 5A85 strh r2, [r3, #42] @ movhi
- 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 7421 .loc 1 3809 23 discriminator 2
- 7422 00a2 FB68 ldr r3, [r7, #12]
- 7423 00a4 BA6A ldr r2, [r7, #40]
- 7424 00a6 DA62 str r2, [r3, #44]
- 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
- 7425 .loc 1 3810 23 discriminator 2
- 7426 00a8 FB68 ldr r3, [r7, #12]
- 7427 00aa 654A ldr r2, .L381+8
- 7428 00ac 5A63 str r2, [r3, #52]
- 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
- 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 7429 .loc 1 3813 13 discriminator 2
- 7430 00ae FB68 ldr r3, [r7, #12]
- 7431 00b0 5B8D ldrh r3, [r3, #42] @ movhi
- 7432 00b2 9BB2 uxth r3, r3
- 7433 .loc 1 3813 8 discriminator 2
- 7434 00b4 FF2B cmp r3, #255
- 7435 00b6 06D9 bls .L368
- 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 7436 .loc 1 3815 22
- 7437 00b8 FB68 ldr r3, [r7, #12]
- 7438 00ba FF22 movs r2, #255
- 7439 00bc 1A85 strh r2, [r3, #40] @ movhi
- 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 7440 .loc 1 3816 16
- 7441 00be 4FF08073 mov r3, #16777216
- 7442 00c2 FB61 str r3, [r7, #28]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 199
- 7443 00c4 07E0 b .L369
- 7444 .L368:
- 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 7445 .loc 1 3820 28
- 7446 00c6 FB68 ldr r3, [r7, #12]
- 7447 00c8 5B8D ldrh r3, [r3, #42] @ movhi
- 7448 00ca 9AB2 uxth r2, r3
- 7449 .loc 1 3820 22
- 7450 00cc FB68 ldr r3, [r7, #12]
- 7451 00ce 1A85 strh r2, [r3, #40] @ movhi
- 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 7452 .loc 1 3821 16
- 7453 00d0 FB68 ldr r3, [r7, #12]
- 7454 00d2 DB6A ldr r3, [r3, #44]
- 7455 00d4 FB61 str r3, [r7, #28]
- 7456 .L369:
- 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
- 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
- 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
- 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
- 7457 .loc 1 3827 14
- 7458 00d6 FB68 ldr r3, [r7, #12]
- 7459 00d8 1B6B ldr r3, [r3, #48]
- 7460 .loc 1 3827 8
- 7461 00da 122B cmp r3, #18
- 7462 00dc 0ED1 bne .L370
- 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 7463 .loc 1 3828 10
- 7464 00de BB6A ldr r3, [r7, #40]
- 7465 00e0 AA2B cmp r3, #170
- 7466 00e2 03D0 beq .L371
- 7467 .loc 1 3828 10 is_stmt 0 discriminator 2
- 7468 00e4 BB6A ldr r3, [r7, #40]
- 7469 00e6 B3F52A4F cmp r3, #43520
- 7470 00ea 01D1 bne .L372
- 7471 .L371:
- 7472 .loc 1 3828 10 discriminator 3
- 7473 00ec 0123 movs r3, #1
- 7474 00ee 00E0 b .L373
- 7475 .L372:
- 7476 .loc 1 3828 10 discriminator 4
- 7477 00f0 0023 movs r3, #0
- 7478 .L373:
- 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
- 7479 .loc 1 3827 59 is_stmt 1
- 7480 00f2 002B cmp r3, #0
- 7481 00f4 02D1 bne .L370
- 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
- 7482 .loc 1 3830 19
- 7483 00f6 0023 movs r3, #0
- 7484 00f8 BB61 str r3, [r7, #24]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 200
- 7485 00fa 0AE0 b .L374
- 7486 .L370:
- 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
- 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
- 7487 .loc 1 3835 7
- 7488 00fc F868 ldr r0, [r7, #12]
- 7489 00fe FFF7FEFF bl I2C_ConvertOtherXferOptions
- 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
- 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
- 7490 .loc 1 3838 15
- 7491 0102 FB68 ldr r3, [r7, #12]
- 7492 0104 5B8D ldrh r3, [r3, #42] @ movhi
- 7493 0106 9BB2 uxth r3, r3
- 7494 .loc 1 3838 10
- 7495 0108 FF2B cmp r3, #255
- 7496 010a 02D8 bhi .L374
- 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 7497 .loc 1 3840 18
- 7498 010c FB68 ldr r3, [r7, #12]
- 7499 010e DB6A ldr r3, [r3, #44]
- 7500 0110 FB61 str r3, [r7, #28]
- 7501 .L374:
- 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
- 7502 .loc 1 3844 13
- 7503 0112 FB68 ldr r3, [r7, #12]
- 7504 0114 1B8D ldrh r3, [r3, #40]
- 7505 .loc 1 3844 8
- 7506 0116 002B cmp r3, #0
- 7507 0118 70D0 beq .L375
- 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 7508 .loc 1 3846 15
- 7509 011a FB68 ldr r3, [r7, #12]
- 7510 011c DB6B ldr r3, [r3, #60]
- 7511 .loc 1 3846 10
- 7512 011e 002B cmp r3, #0
- 7513 0120 20D0 beq .L376
- 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
- 7514 .loc 1 3849 13
- 7515 0122 FB68 ldr r3, [r7, #12]
- 7516 0124 DB6B ldr r3, [r3, #60]
- 7517 .loc 1 3849 40
- 7518 0126 474A ldr r2, .L381+12
- 7519 0128 9A62 str r2, [r3, #40]
- 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 201
- 7520 .loc 1 3852 13
- 7521 012a FB68 ldr r3, [r7, #12]
- 7522 012c DB6B ldr r3, [r3, #60]
- 7523 .loc 1 3852 41
- 7524 012e 464A ldr r2, .L381+16
- 7525 0130 1A63 str r2, [r3, #48]
- 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
- 7526 .loc 1 3855 13
- 7527 0132 FB68 ldr r3, [r7, #12]
- 7528 0134 DB6B ldr r3, [r3, #60]
- 7529 .loc 1 3855 44
- 7530 0136 0022 movs r2, #0
- 7531 0138 DA62 str r2, [r3, #44]
- 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
- 7532 .loc 1 3856 13
- 7533 013a FB68 ldr r3, [r7, #12]
- 7534 013c DB6B ldr r3, [r3, #60]
- 7535 .loc 1 3856 41
- 7536 013e 0022 movs r2, #0
- 7537 0140 5A63 str r2, [r3, #52]
- 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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
- 7538 .loc 1 3859 25
- 7539 0142 FB68 ldr r3, [r7, #12]
- 7540 0144 D86B ldr r0, [r3, #60]
- 7541 .loc 1 3859 71
- 7542 0146 FB68 ldr r3, [r7, #12]
- 7543 0148 1B68 ldr r3, [r3]
- 7544 .loc 1 3859 66
- 7545 014a 2433 adds r3, r3, #36
- 7546 .loc 1 3859 25
- 7547 014c 1946 mov r1, r3
- 7548 014e 7A68 ldr r2, [r7, #4]
- 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 7549 .loc 1 3860 46
- 7550 0150 FB68 ldr r3, [r7, #12]
- 7551 0152 1B8D ldrh r3, [r3, #40]
- 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 7552 .loc 1 3859 25
- 7553 0154 FFF7FEFF bl HAL_DMA_Start_IT
- 7554 0158 0346 mov r3, r0
- 7555 015a FB75 strb r3, [r7, #23]
- 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 202
- 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 7556 .loc 1 3877 10
- 7557 015c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 7558 015e 002B cmp r3, #0
- 7559 0160 38D1 bne .L378
- 7560 0162 13E0 b .L380
- 7561 .L376:
- 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 7562 .loc 1 3865 25
- 7563 0164 FB68 ldr r3, [r7, #12]
- 7564 0166 2022 movs r2, #32
- 7565 0168 83F84120 strb r2, [r3, #65]
- 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7566 .loc 1 3866 25
- 7567 016c FB68 ldr r3, [r7, #12]
- 7568 016e 0022 movs r2, #0
- 7569 0170 83F84220 strb r2, [r3, #66]
- 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7570 .loc 1 3869 25
- 7571 0174 FB68 ldr r3, [r7, #12]
- 7572 0176 5B6C ldr r3, [r3, #68]
- 7573 0178 43F08002 orr r2, r3, #128
- 7574 017c FB68 ldr r3, [r7, #12]
- 7575 017e 5A64 str r2, [r3, #68]
- 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7576 .loc 1 3872 9
- 7577 0180 FB68 ldr r3, [r7, #12]
- 7578 0182 0022 movs r2, #0
- 7579 0184 83F84020 strb r2, [r3, #64]
- 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7580 .loc 1 3874 16
- 7581 0188 0123 movs r3, #1
- 7582 018a 50E0 b .L367
- 7583 .L380:
- 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
- 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
- 7584 .loc 1 3880 59
- 7585 018c FB68 ldr r3, [r7, #12]
- 7586 018e 1B8D ldrh r3, [r3, #40]
- 7587 .loc 1 3880 9
- 7588 0190 DAB2 uxtb r2, r3
- 7589 0192 7989 ldrh r1, [r7, #10]
- 7590 0194 BB69 ldr r3, [r7, #24]
- 7591 0196 0093 str r3, [sp]
- 7592 0198 FB69 ldr r3, [r7, #28]
- 7593 019a F868 ldr r0, [r7, #12]
- 7594 019c FFF7FEFF bl I2C_TransferConfig
- 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 7595 .loc 1 3883 25
- 7596 01a0 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 203
- 7597 01a2 5B8D ldrh r3, [r3, #42] @ movhi
- 7598 01a4 9AB2 uxth r2, r3
- 7599 .loc 1 3883 32
- 7600 01a6 FB68 ldr r3, [r7, #12]
- 7601 01a8 1B8D ldrh r3, [r3, #40]
- 7602 .loc 1 3883 25
- 7603 01aa D31A subs r3, r2, r3
- 7604 01ac 9AB2 uxth r2, r3
- 7605 01ae FB68 ldr r3, [r7, #12]
- 7606 01b0 5A85 strh r2, [r3, #42] @ movhi
- 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 7607 .loc 1 3886 9
- 7608 01b2 FB68 ldr r3, [r7, #12]
- 7609 01b4 0022 movs r2, #0
- 7610 01b6 83F84020 strb r2, [r3, #64]
- 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
- 7611 .loc 1 3892 9
- 7612 01ba 1021 movs r1, #16
- 7613 01bc F868 ldr r0, [r7, #12]
- 7614 01be FFF7FEFF bl I2C_Enable_IRQ
- 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 7615 .loc 1 3895 13
- 7616 01c2 FB68 ldr r3, [r7, #12]
- 7617 01c4 1B68 ldr r3, [r3]
- 7618 .loc 1 3895 29
- 7619 01c6 1A68 ldr r2, [r3]
- 7620 .loc 1 3895 13
- 7621 01c8 FB68 ldr r3, [r7, #12]
- 7622 01ca 1B68 ldr r3, [r3]
- 7623 .loc 1 3895 29
- 7624 01cc 42F40042 orr r2, r2, #32768
- 7625 01d0 1A60 str r2, [r3]
- 7626 01d2 29E0 b .L379
- 7627 .L378:
- 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 7628 .loc 1 3900 25
- 7629 01d4 FB68 ldr r3, [r7, #12]
- 7630 01d6 2022 movs r2, #32
- 7631 01d8 83F84120 strb r2, [r3, #65]
- 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 7632 .loc 1 3901 25
- 7633 01dc FB68 ldr r3, [r7, #12]
- 7634 01de 0022 movs r2, #0
- 7635 01e0 83F84220 strb r2, [r3, #66]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 204
- 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 7636 .loc 1 3904 25
- 7637 01e4 FB68 ldr r3, [r7, #12]
- 7638 01e6 5B6C ldr r3, [r3, #68]
- 7639 01e8 43F01002 orr r2, r3, #16
- 7640 01ec FB68 ldr r3, [r7, #12]
- 7641 01ee 5A64 str r2, [r3, #68]
- 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 7642 .loc 1 3907 9
- 7643 01f0 FB68 ldr r3, [r7, #12]
- 7644 01f2 0022 movs r2, #0
- 7645 01f4 83F84020 strb r2, [r3, #64]
- 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 7646 .loc 1 3909 16
- 7647 01f8 0123 movs r3, #1
- 7648 01fa 18E0 b .L367
- 7649 .L375:
- 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
- 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
- 7650 .loc 1 3915 21
- 7651 01fc FB68 ldr r3, [r7, #12]
- 7652 01fe 134A ldr r2, .L381+20
- 7653 0200 5A63 str r2, [r3, #52]
- 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
- 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
- 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
- 7654 .loc 1 3919 57
- 7655 0202 FB68 ldr r3, [r7, #12]
- 7656 0204 1B8D ldrh r3, [r3, #40]
- 7657 .loc 1 3919 7
- 7658 0206 DAB2 uxtb r2, r3
- 7659 0208 7989 ldrh r1, [r7, #10]
- 7660 020a 0B4B ldr r3, .L381
- 7661 020c 0093 str r3, [sp]
- 7662 020e 4FF00073 mov r3, #33554432
- 7663 0212 F868 ldr r0, [r7, #12]
- 7664 0214 FFF7FEFF bl I2C_TransferConfig
- 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
- 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 7665 .loc 1 3923 7
- 7666 0218 FB68 ldr r3, [r7, #12]
- 7667 021a 0022 movs r2, #0
- 7668 021c 83F84020 strb r2, [r3, #64]
- 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 205
- 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
- 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
- 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
- 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
- 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
- 7669 .loc 1 3932 7
- 7670 0220 0221 movs r1, #2
- 7671 0222 F868 ldr r0, [r7, #12]
- 7672 0224 FFF7FEFF bl I2C_Enable_IRQ
- 7673 .L379:
- 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 7674 .loc 1 3935 12
- 7675 0228 0023 movs r3, #0
- 7676 022a 00E0 b .L367
- 7677 .L365:
- 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 7678 .loc 1 3939 12
- 7679 022c 0223 movs r3, #2
- 7680 .L367:
- 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7681 .loc 1 3941 1
- 7682 022e 1846 mov r0, r3
- 7683 0230 2037 adds r7, r7, #32
- 7684 .LCFI135:
- 7685 .cfi_def_cfa_offset 8
- 7686 0232 BD46 mov sp, r7
- 7687 .LCFI136:
- 7688 .cfi_def_cfa_register 13
- 7689 @ sp needed
- 7690 0234 80BD pop {r7, pc}
- 7691 .L382:
- 7692 0236 00BF .align 2
- 7693 .L381:
- 7694 0238 00240080 .word -2147474432
- 7695 023c 00000000 .word .LC0
- 7696 0240 00000000 .word I2C_Master_ISR_DMA
- 7697 0244 00000000 .word I2C_DMAMasterReceiveCplt
- 7698 0248 00000000 .word I2C_DMAError
- 7699 024c 00000000 .word I2C_Master_ISR_IT
- 7700 .cfi_endproc
- 7701 .LFE156:
- 7703 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
- 7704 .align 1
- 7705 .global HAL_I2C_Slave_Seq_Transmit_IT
- 7706 .syntax unified
- 7707 .thumb
- 7708 .thumb_func
- 7710 HAL_I2C_Slave_Seq_Transmit_IT:
- 7711 .LFB157:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 206
- 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
- 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7712 .loc 1 3955 1
- 7713 .cfi_startproc
- 7714 @ args = 0, pretend = 0, frame = 24
- 7715 @ frame_needed = 1, uses_anonymous_args = 0
- 7716 0000 80B5 push {r7, lr}
- 7717 .LCFI137:
- 7718 .cfi_def_cfa_offset 8
- 7719 .cfi_offset 7, -8
- 7720 .cfi_offset 14, -4
- 7721 0002 86B0 sub sp, sp, #24
- 7722 .LCFI138:
- 7723 .cfi_def_cfa_offset 32
- 7724 0004 00AF add r7, sp, #0
- 7725 .LCFI139:
- 7726 .cfi_def_cfa_register 7
- 7727 0006 F860 str r0, [r7, #12]
- 7728 0008 B960 str r1, [r7, #8]
- 7729 000a 3B60 str r3, [r7]
- 7730 000c 1346 mov r3, r2 @ movhi
- 7731 000e FB80 strh r3, [r7, #6] @ movhi
- 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
- 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
- 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 7732 .loc 1 3960 3
- 7733 0010 3B68 ldr r3, [r7]
- 7734 0012 002B cmp r3, #0
- 7735 0014 1ED0 beq .L384
- 7736 .loc 1 3960 3 is_stmt 0 discriminator 1
- 7737 0016 3B68 ldr r3, [r7]
- 7738 0018 B3F1807F cmp r3, #16777216
- 7739 001c 1AD0 beq .L384
- 7740 .loc 1 3960 3 discriminator 2
- 7741 001e 3B68 ldr r3, [r7]
- 7742 0020 B3F1807F cmp r3, #16777216
- 7743 0024 16D0 beq .L384
- 7744 .loc 1 3960 3 discriminator 3
- 7745 0026 3B68 ldr r3, [r7]
- 7746 0028 B3F1007F cmp r3, #33554432
- 7747 002c 12D0 beq .L384
- 7748 .loc 1 3960 3 discriminator 4
- 7749 002e 3B68 ldr r3, [r7]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 207
- 7750 0030 B3F1007F cmp r3, #33554432
- 7751 0034 0ED0 beq .L384
- 7752 .loc 1 3960 3 discriminator 5
- 7753 0036 3B68 ldr r3, [r7]
- 7754 0038 002B cmp r3, #0
- 7755 003a 0BD0 beq .L384
- 7756 .loc 1 3960 3 discriminator 6
- 7757 003c 3B68 ldr r3, [r7]
- 7758 003e AA2B cmp r3, #170
- 7759 0040 08D0 beq .L384
- 7760 .loc 1 3960 3 discriminator 7
- 7761 0042 3B68 ldr r3, [r7]
- 7762 0044 B3F52A4F cmp r3, #43520
- 7763 0048 04D0 beq .L384
- 7764 .loc 1 3960 3 discriminator 8
- 7765 004a 40F67871 movw r1, #3960
- 7766 004e 5448 ldr r0, .L392
- 7767 0050 FFF7FEFF bl assert_failed
- 7768 .L384:
- 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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)
- 7769 .loc 1 3962 22 is_stmt 1
- 7770 0054 FB68 ldr r3, [r7, #12]
- 7771 0056 93F84130 ldrb r3, [r3, #65]
- 7772 005a DBB2 uxtb r3, r3
- 7773 .loc 1 3962 30
- 7774 005c 03F02803 and r3, r3, #40
- 7775 .loc 1 3962 6
- 7776 0060 282B cmp r3, #40
- 7777 0062 40F09880 bne .L385
- 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 7778 .loc 1 3964 8
- 7779 0066 BB68 ldr r3, [r7, #8]
- 7780 0068 002B cmp r3, #0
- 7781 006a 02D0 beq .L386
- 7782 .loc 1 3964 25 discriminator 1
- 7783 006c FB88 ldrh r3, [r7, #6]
- 7784 006e 002B cmp r3, #0
- 7785 0070 05D1 bne .L387
- 7786 .L386:
- 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 7787 .loc 1 3966 23
- 7788 0072 FB68 ldr r3, [r7, #12]
- 7789 0074 4FF40072 mov r2, #512
- 7790 0078 5A64 str r2, [r3, #68]
- 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 7791 .loc 1 3967 15
- 7792 007a 0123 movs r3, #1
- 7793 007c 8CE0 b .L388
- 7794 .L387:
- 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
- 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
- 7795 .loc 1 3971 5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 208
- 7796 007e 48F20101 movw r1, #32769
- 7797 0082 F868 ldr r0, [r7, #12]
- 7798 0084 FFF7FEFF bl I2C_Disable_IRQ
- 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 7799 .loc 1 3974 5
- 7800 0088 FB68 ldr r3, [r7, #12]
- 7801 008a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 7802 008e 012B cmp r3, #1
- 7803 0090 01D1 bne .L389
- 7804 .loc 1 3974 5 is_stmt 0 discriminator 1
- 7805 0092 0223 movs r3, #2
- 7806 0094 80E0 b .L388
- 7807 .L389:
- 7808 .loc 1 3974 5 discriminator 2
- 7809 0096 FB68 ldr r3, [r7, #12]
- 7810 0098 0122 movs r2, #1
- 7811 009a 83F84020 strb r2, [r3, #64]
- 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
- 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
- 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
- 7812 .loc 1 3978 13 is_stmt 1 discriminator 2
- 7813 009e FB68 ldr r3, [r7, #12]
- 7814 00a0 93F84130 ldrb r3, [r3, #65]
- 7815 00a4 DBB2 uxtb r3, r3
- 7816 .loc 1 3978 8 discriminator 2
- 7817 00a6 2A2B cmp r3, #42
- 7818 00a8 2AD1 bne .L390
- 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
- 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
- 7819 .loc 1 3981 7
- 7820 00aa 0221 movs r1, #2
- 7821 00ac F868 ldr r0, [r7, #12]
- 7822 00ae FFF7FEFF bl I2C_Disable_IRQ
- 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
- 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
- 7823 .loc 1 3984 16
- 7824 00b2 FB68 ldr r3, [r7, #12]
- 7825 00b4 1B68 ldr r3, [r3]
- 7826 .loc 1 3984 26
- 7827 00b6 1B68 ldr r3, [r3]
- 7828 .loc 1 3984 32
- 7829 00b8 03F40043 and r3, r3, #32768
- 7830 .loc 1 3984 10
- 7831 00bc B3F5004F cmp r3, #32768
- 7832 00c0 1ED1 bne .L390
- 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 7833 .loc 1 3986 13
- 7834 00c2 FB68 ldr r3, [r7, #12]
- 7835 00c4 1B68 ldr r3, [r3]
- 7836 .loc 1 3986 29
- 7837 00c6 1A68 ldr r2, [r3]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 209
- 7838 .loc 1 3986 13
- 7839 00c8 FB68 ldr r3, [r7, #12]
- 7840 00ca 1B68 ldr r3, [r3]
- 7841 .loc 1 3986 29
- 7842 00cc 22F40042 bic r2, r2, #32768
- 7843 00d0 1A60 str r2, [r3]
- 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 7844 .loc 1 3988 17
- 7845 00d2 FB68 ldr r3, [r7, #12]
- 7846 00d4 DB6B ldr r3, [r3, #60]
- 7847 .loc 1 3988 12
- 7848 00d6 002B cmp r3, #0
- 7849 00d8 12D0 beq .L390
- 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
- 7850 .loc 1 3992 15
- 7851 00da FB68 ldr r3, [r7, #12]
- 7852 00dc DB6B ldr r3, [r3, #60]
- 7853 .loc 1 3992 43
- 7854 00de 314A ldr r2, .L392+4
- 7855 00e0 5A63 str r2, [r3, #52]
- 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
- 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
- 7856 .loc 1 3995 15
- 7857 00e2 FB68 ldr r3, [r7, #12]
- 7858 00e4 DB6B ldr r3, [r3, #60]
- 7859 00e6 1846 mov r0, r3
- 7860 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
- 7861 00ec 0346 mov r3, r0
- 7862 .loc 1 3995 14
- 7863 00ee 002B cmp r3, #0
- 7864 00f0 06D0 beq .L390
- 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
- 7865 .loc 1 3998 17
- 7866 00f2 FB68 ldr r3, [r7, #12]
- 7867 00f4 DB6B ldr r3, [r3, #60]
- 7868 .loc 1 3998 25
- 7869 00f6 5B6B ldr r3, [r3, #52]
- 7870 .loc 1 3998 49
- 7871 00f8 FA68 ldr r2, [r7, #12]
- 7872 00fa D26B ldr r2, [r2, #60]
- 7873 .loc 1 3998 13
- 7874 00fc 1046 mov r0, r2
- 7875 00fe 9847 blx r3
- 7876 .LVL0:
- 7877 .L390:
- 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 210
- 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
- 7878 .loc 1 4004 21
- 7879 0100 FB68 ldr r3, [r7, #12]
- 7880 0102 2922 movs r2, #41
- 7881 0104 83F84120 strb r2, [r3, #65]
- 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 7882 .loc 1 4005 21
- 7883 0108 FB68 ldr r3, [r7, #12]
- 7884 010a 2022 movs r2, #32
- 7885 010c 83F84220 strb r2, [r3, #66]
- 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 7886 .loc 1 4006 21
- 7887 0110 FB68 ldr r3, [r7, #12]
- 7888 0112 0022 movs r2, #0
- 7889 0114 5A64 str r2, [r3, #68]
- 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 7890 .loc 1 4009 9
- 7891 0116 FB68 ldr r3, [r7, #12]
- 7892 0118 1B68 ldr r3, [r3]
- 7893 .loc 1 4009 25
- 7894 011a 5A68 ldr r2, [r3, #4]
- 7895 .loc 1 4009 9
- 7896 011c FB68 ldr r3, [r7, #12]
- 7897 011e 1B68 ldr r3, [r3]
- 7898 .loc 1 4009 25
- 7899 0120 22F40042 bic r2, r2, #32768
- 7900 0124 5A60 str r2, [r3, #4]
- 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 7901 .loc 1 4012 23
- 7902 0126 FB68 ldr r3, [r7, #12]
- 7903 0128 BA68 ldr r2, [r7, #8]
- 7904 012a 5A62 str r2, [r3, #36]
- 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 7905 .loc 1 4013 23
- 7906 012c FB68 ldr r3, [r7, #12]
- 7907 012e FA88 ldrh r2, [r7, #6] @ movhi
- 7908 0130 5A85 strh r2, [r3, #42] @ movhi
- 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 7909 .loc 1 4014 29
- 7910 0132 FB68 ldr r3, [r7, #12]
- 7911 0134 5B8D ldrh r3, [r3, #42] @ movhi
- 7912 0136 9AB2 uxth r2, r3
- 7913 .loc 1 4014 23
- 7914 0138 FB68 ldr r3, [r7, #12]
- 7915 013a 1A85 strh r2, [r3, #40] @ movhi
- 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 7916 .loc 1 4015 23
- 7917 013c FB68 ldr r3, [r7, #12]
- 7918 013e 3A68 ldr r2, [r7]
- 7919 0140 DA62 str r2, [r3, #44]
- 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
- 7920 .loc 1 4016 23
- 7921 0142 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 211
- 7922 0144 184A ldr r2, .L392+8
- 7923 0146 5A63 str r2, [r3, #52]
- 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
- 7924 .loc 1 4018 11
- 7925 0148 FB68 ldr r3, [r7, #12]
- 7926 014a 1B68 ldr r3, [r3]
- 7927 014c 9B69 ldr r3, [r3, #24]
- 7928 014e 03F00803 and r3, r3, #8
- 7929 0152 082B cmp r3, #8
- 7930 0154 0CBF ite eq
- 7931 0156 0123 moveq r3, #1
- 7932 0158 0023 movne r3, #0
- 7933 015a DBB2 uxtb r3, r3
- 7934 .loc 1 4018 9
- 7935 015c FB75 strb r3, [r7, #23]
- 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
- 7936 .loc 1 4019 10
- 7937 015e FB68 ldr r3, [r7, #12]
- 7938 0160 1B68 ldr r3, [r3]
- 7939 0162 9B69 ldr r3, [r3, #24]
- 7940 0164 1B0C lsrs r3, r3, #16
- 7941 0166 DBB2 uxtb r3, r3
- 7942 0168 03F00103 and r3, r3, #1
- 7943 016c DBB2 uxtb r3, r3
- 7944 .loc 1 4019 8
- 7945 016e 012B cmp r3, #1
- 7946 0170 06D1 bne .L391
- 7947 .loc 1 4019 54 discriminator 1
- 7948 0172 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 7949 0174 002B cmp r3, #0
- 7950 0176 03D0 beq .L391
- 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
- 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
- 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 7951 .loc 1 4023 7
- 7952 0178 FB68 ldr r3, [r7, #12]
- 7953 017a 1B68 ldr r3, [r3]
- 7954 017c 0822 movs r2, #8
- 7955 017e DA61 str r2, [r3, #28]
- 7956 .L391:
- 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 7957 .loc 1 4027 5
- 7958 0180 FB68 ldr r3, [r7, #12]
- 7959 0182 0022 movs r2, #0
- 7960 0184 83F84020 strb r2, [r3, #64]
- 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
- 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
- 7961 .loc 1 4033 5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 212
- 7962 0188 48F20101 movw r1, #32769
- 7963 018c F868 ldr r0, [r7, #12]
- 7964 018e FFF7FEFF bl I2C_Enable_IRQ
- 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 7965 .loc 1 4035 12
- 7966 0192 0023 movs r3, #0
- 7967 0194 00E0 b .L388
- 7968 .L385:
- 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 7969 .loc 1 4039 12
- 7970 0196 0123 movs r3, #1
- 7971 .L388:
- 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7972 .loc 1 4041 1
- 7973 0198 1846 mov r0, r3
- 7974 019a 1837 adds r7, r7, #24
- 7975 .LCFI140:
- 7976 .cfi_def_cfa_offset 8
- 7977 019c BD46 mov sp, r7
- 7978 .LCFI141:
- 7979 .cfi_def_cfa_register 13
- 7980 @ sp needed
- 7981 019e 80BD pop {r7, pc}
- 7982 .L393:
- 7983 .align 2
- 7984 .L392:
- 7985 01a0 00000000 .word .LC0
- 7986 01a4 00000000 .word I2C_DMAAbort
- 7987 01a8 00000000 .word I2C_Slave_ISR_IT
- 7988 .cfi_endproc
- 7989 .LFE157:
- 7991 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
- 7992 .align 1
- 7993 .global HAL_I2C_Slave_Seq_Transmit_DMA
- 7994 .syntax unified
- 7995 .thumb
- 7996 .thumb_func
- 7998 HAL_I2C_Slave_Seq_Transmit_DMA:
- 7999 .LFB158:
- 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 213
- 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 8000 .loc 1 4055 1
- 8001 .cfi_startproc
- 8002 @ args = 0, pretend = 0, frame = 24
- 8003 @ frame_needed = 1, uses_anonymous_args = 0
- 8004 0000 80B5 push {r7, lr}
- 8005 .LCFI142:
- 8006 .cfi_def_cfa_offset 8
- 8007 .cfi_offset 7, -8
- 8008 .cfi_offset 14, -4
- 8009 0002 86B0 sub sp, sp, #24
- 8010 .LCFI143:
- 8011 .cfi_def_cfa_offset 32
- 8012 0004 00AF add r7, sp, #0
- 8013 .LCFI144:
- 8014 .cfi_def_cfa_register 7
- 8015 0006 F860 str r0, [r7, #12]
- 8016 0008 B960 str r1, [r7, #8]
- 8017 000a 3B60 str r3, [r7]
- 8018 000c 1346 mov r3, r2 @ movhi
- 8019 000e FB80 strh r3, [r7, #6] @ movhi
- 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
- 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
- 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 8020 .loc 1 4061 3
- 8021 0010 3B68 ldr r3, [r7]
- 8022 0012 002B cmp r3, #0
- 8023 0014 1ED0 beq .L395
- 8024 .loc 1 4061 3 is_stmt 0 discriminator 1
- 8025 0016 3B68 ldr r3, [r7]
- 8026 0018 B3F1807F cmp r3, #16777216
- 8027 001c 1AD0 beq .L395
- 8028 .loc 1 4061 3 discriminator 2
- 8029 001e 3B68 ldr r3, [r7]
- 8030 0020 B3F1807F cmp r3, #16777216
- 8031 0024 16D0 beq .L395
- 8032 .loc 1 4061 3 discriminator 3
- 8033 0026 3B68 ldr r3, [r7]
- 8034 0028 B3F1007F cmp r3, #33554432
- 8035 002c 12D0 beq .L395
- 8036 .loc 1 4061 3 discriminator 4
- 8037 002e 3B68 ldr r3, [r7]
- 8038 0030 B3F1007F cmp r3, #33554432
- 8039 0034 0ED0 beq .L395
- 8040 .loc 1 4061 3 discriminator 5
- 8041 0036 3B68 ldr r3, [r7]
- 8042 0038 002B cmp r3, #0
- 8043 003a 0BD0 beq .L395
- 8044 .loc 1 4061 3 discriminator 6
- 8045 003c 3B68 ldr r3, [r7]
- 8046 003e AA2B cmp r3, #170
- 8047 0040 08D0 beq .L395
- 8048 .loc 1 4061 3 discriminator 7
- 8049 0042 3B68 ldr r3, [r7]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 214
- 8050 0044 B3F52A4F cmp r3, #43520
- 8051 0048 04D0 beq .L395
- 8052 .loc 1 4061 3 discriminator 8
- 8053 004a 40F6DD71 movw r1, #4061
- 8054 004e 9A48 ldr r0, .L410
- 8055 0050 FFF7FEFF bl assert_failed
- 8056 .L395:
- 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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)
- 8057 .loc 1 4063 22 is_stmt 1
- 8058 0054 FB68 ldr r3, [r7, #12]
- 8059 0056 93F84130 ldrb r3, [r3, #65]
- 8060 005a DBB2 uxtb r3, r3
- 8061 .loc 1 4063 30
- 8062 005c 03F02803 and r3, r3, #40
- 8063 .loc 1 4063 6
- 8064 0060 282B cmp r3, #40
- 8065 0062 40F03381 bne .L396
- 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 8066 .loc 1 4065 8
- 8067 0066 BB68 ldr r3, [r7, #8]
- 8068 0068 002B cmp r3, #0
- 8069 006a 02D0 beq .L397
- 8070 .loc 1 4065 25 discriminator 1
- 8071 006c FB88 ldrh r3, [r7, #6]
- 8072 006e 002B cmp r3, #0
- 8073 0070 05D1 bne .L398
- 8074 .L397:
- 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 8075 .loc 1 4067 23
- 8076 0072 FB68 ldr r3, [r7, #12]
- 8077 0074 4FF40072 mov r2, #512
- 8078 0078 5A64 str r2, [r3, #68]
- 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 8079 .loc 1 4068 15
- 8080 007a 0123 movs r3, #1
- 8081 007c 27E1 b .L399
- 8082 .L398:
- 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 8083 .loc 1 4072 5
- 8084 007e FB68 ldr r3, [r7, #12]
- 8085 0080 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 8086 0084 012B cmp r3, #1
- 8087 0086 01D1 bne .L400
- 8088 .loc 1 4072 5 is_stmt 0 discriminator 1
- 8089 0088 0223 movs r3, #2
- 8090 008a 20E1 b .L399
- 8091 .L400:
- 8092 .loc 1 4072 5 discriminator 2
- 8093 008c FB68 ldr r3, [r7, #12]
- 8094 008e 0122 movs r2, #1
- 8095 0090 83F84020 strb r2, [r3, #64]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 215
- 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
- 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
- 8096 .loc 1 4075 5 is_stmt 1 discriminator 2
- 8097 0094 48F20101 movw r1, #32769
- 8098 0098 F868 ldr r0, [r7, #12]
- 8099 009a FFF7FEFF bl I2C_Disable_IRQ
- 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
- 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
- 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
- 8100 .loc 1 4079 13 discriminator 2
- 8101 009e FB68 ldr r3, [r7, #12]
- 8102 00a0 93F84130 ldrb r3, [r3, #65]
- 8103 00a4 DBB2 uxtb r3, r3
- 8104 .loc 1 4079 8 discriminator 2
- 8105 00a6 2A2B cmp r3, #42
- 8106 00a8 2BD1 bne .L401
- 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
- 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
- 8107 .loc 1 4082 7
- 8108 00aa 0221 movs r1, #2
- 8109 00ac F868 ldr r0, [r7, #12]
- 8110 00ae FFF7FEFF bl I2C_Disable_IRQ
- 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
- 8111 .loc 1 4084 16
- 8112 00b2 FB68 ldr r3, [r7, #12]
- 8113 00b4 1B68 ldr r3, [r3]
- 8114 .loc 1 4084 26
- 8115 00b6 1B68 ldr r3, [r3]
- 8116 .loc 1 4084 32
- 8117 00b8 03F40043 and r3, r3, #32768
- 8118 .loc 1 4084 10
- 8119 00bc B3F5004F cmp r3, #32768
- 8120 00c0 4CD1 bne .L402
- 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
- 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 8121 .loc 1 4087 17
- 8122 00c2 FB68 ldr r3, [r7, #12]
- 8123 00c4 DB6B ldr r3, [r3, #60]
- 8124 .loc 1 4087 12
- 8125 00c6 002B cmp r3, #0
- 8126 00c8 48D0 beq .L402
- 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 8127 .loc 1 4089 15
- 8128 00ca FB68 ldr r3, [r7, #12]
- 8129 00cc 1B68 ldr r3, [r3]
- 8130 .loc 1 4089 31
- 8131 00ce 1A68 ldr r2, [r3]
- 8132 .loc 1 4089 15
- 8133 00d0 FB68 ldr r3, [r7, #12]
- 8134 00d2 1B68 ldr r3, [r3]
- 8135 .loc 1 4089 31
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 216
- 8136 00d4 22F40042 bic r2, r2, #32768
- 8137 00d8 1A60 str r2, [r3]
- 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
- 8138 .loc 1 4093 15
- 8139 00da FB68 ldr r3, [r7, #12]
- 8140 00dc DB6B ldr r3, [r3, #60]
- 8141 .loc 1 4093 43
- 8142 00de 774A ldr r2, .L410+4
- 8143 00e0 5A63 str r2, [r3, #52]
- 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
- 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
- 8144 .loc 1 4096 15
- 8145 00e2 FB68 ldr r3, [r7, #12]
- 8146 00e4 DB6B ldr r3, [r3, #60]
- 8147 00e6 1846 mov r0, r3
- 8148 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
- 8149 00ec 0346 mov r3, r0
- 8150 .loc 1 4096 14
- 8151 00ee 002B cmp r3, #0
- 8152 00f0 34D0 beq .L402
- 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
- 8153 .loc 1 4099 17
- 8154 00f2 FB68 ldr r3, [r7, #12]
- 8155 00f4 DB6B ldr r3, [r3, #60]
- 8156 .loc 1 4099 25
- 8157 00f6 5B6B ldr r3, [r3, #52]
- 8158 .loc 1 4099 49
- 8159 00f8 FA68 ldr r2, [r7, #12]
- 8160 00fa D26B ldr r2, [r2, #60]
- 8161 .loc 1 4099 13
- 8162 00fc 1046 mov r0, r2
- 8163 00fe 9847 blx r3
- 8164 .LVL1:
- 8165 0100 2CE0 b .L402
- 8166 .L401:
- 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
- 8167 .loc 1 4104 18
- 8168 0102 FB68 ldr r3, [r7, #12]
- 8169 0104 93F84130 ldrb r3, [r3, #65]
- 8170 0108 DBB2 uxtb r3, r3
- 8171 .loc 1 4104 13
- 8172 010a 292B cmp r3, #41
- 8173 010c 26D1 bne .L402
- 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
- 8174 .loc 1 4106 16
- 8175 010e FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 217
- 8176 0110 1B68 ldr r3, [r3]
- 8177 .loc 1 4106 26
- 8178 0112 1B68 ldr r3, [r3]
- 8179 .loc 1 4106 32
- 8180 0114 03F48043 and r3, r3, #16384
- 8181 .loc 1 4106 10
- 8182 0118 B3F5804F cmp r3, #16384
- 8183 011c 1ED1 bne .L402
- 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 8184 .loc 1 4108 13
- 8185 011e FB68 ldr r3, [r7, #12]
- 8186 0120 1B68 ldr r3, [r3]
- 8187 .loc 1 4108 29
- 8188 0122 1A68 ldr r2, [r3]
- 8189 .loc 1 4108 13
- 8190 0124 FB68 ldr r3, [r7, #12]
- 8191 0126 1B68 ldr r3, [r3]
- 8192 .loc 1 4108 29
- 8193 0128 22F48042 bic r2, r2, #16384
- 8194 012c 1A60 str r2, [r3]
- 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
- 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 8195 .loc 1 4111 17
- 8196 012e FB68 ldr r3, [r7, #12]
- 8197 0130 9B6B ldr r3, [r3, #56]
- 8198 .loc 1 4111 12
- 8199 0132 002B cmp r3, #0
- 8200 0134 12D0 beq .L402
- 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
- 8201 .loc 1 4115 15
- 8202 0136 FB68 ldr r3, [r7, #12]
- 8203 0138 9B6B ldr r3, [r3, #56]
- 8204 .loc 1 4115 43
- 8205 013a 604A ldr r2, .L410+4
- 8206 013c 5A63 str r2, [r3, #52]
- 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
- 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
- 8207 .loc 1 4118 15
- 8208 013e FB68 ldr r3, [r7, #12]
- 8209 0140 9B6B ldr r3, [r3, #56]
- 8210 0142 1846 mov r0, r3
- 8211 0144 FFF7FEFF bl HAL_DMA_Abort_IT
- 8212 0148 0346 mov r3, r0
- 8213 .loc 1 4118 14
- 8214 014a 002B cmp r3, #0
- 8215 014c 06D0 beq .L402
- 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
- 8216 .loc 1 4121 17
- 8217 014e FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 218
- 8218 0150 9B6B ldr r3, [r3, #56]
- 8219 .loc 1 4121 25
- 8220 0152 5B6B ldr r3, [r3, #52]
- 8221 .loc 1 4121 49
- 8222 0154 FA68 ldr r2, [r7, #12]
- 8223 0156 926B ldr r2, [r2, #56]
- 8224 .loc 1 4121 13
- 8225 0158 1046 mov r0, r2
- 8226 015a 9847 blx r3
- 8227 .LVL2:
- 8228 .L402:
- 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
- 8229 .loc 1 4131 21
- 8230 015c FB68 ldr r3, [r7, #12]
- 8231 015e 2922 movs r2, #41
- 8232 0160 83F84120 strb r2, [r3, #65]
- 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 8233 .loc 1 4132 21
- 8234 0164 FB68 ldr r3, [r7, #12]
- 8235 0166 2022 movs r2, #32
- 8236 0168 83F84220 strb r2, [r3, #66]
- 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 8237 .loc 1 4133 21
- 8238 016c FB68 ldr r3, [r7, #12]
- 8239 016e 0022 movs r2, #0
- 8240 0170 5A64 str r2, [r3, #68]
- 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 8241 .loc 1 4136 9
- 8242 0172 FB68 ldr r3, [r7, #12]
- 8243 0174 1B68 ldr r3, [r3]
- 8244 .loc 1 4136 25
- 8245 0176 5A68 ldr r2, [r3, #4]
- 8246 .loc 1 4136 9
- 8247 0178 FB68 ldr r3, [r7, #12]
- 8248 017a 1B68 ldr r3, [r3]
- 8249 .loc 1 4136 25
- 8250 017c 22F40042 bic r2, r2, #32768
- 8251 0180 5A60 str r2, [r3, #4]
- 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 8252 .loc 1 4139 23
- 8253 0182 FB68 ldr r3, [r7, #12]
- 8254 0184 BA68 ldr r2, [r7, #8]
- 8255 0186 5A62 str r2, [r3, #36]
- 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 219
- 8256 .loc 1 4140 23
- 8257 0188 FB68 ldr r3, [r7, #12]
- 8258 018a FA88 ldrh r2, [r7, #6] @ movhi
- 8259 018c 5A85 strh r2, [r3, #42] @ movhi
- 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 8260 .loc 1 4141 29
- 8261 018e FB68 ldr r3, [r7, #12]
- 8262 0190 5B8D ldrh r3, [r3, #42] @ movhi
- 8263 0192 9AB2 uxth r2, r3
- 8264 .loc 1 4141 23
- 8265 0194 FB68 ldr r3, [r7, #12]
- 8266 0196 1A85 strh r2, [r3, #40] @ movhi
- 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 8267 .loc 1 4142 23
- 8268 0198 FB68 ldr r3, [r7, #12]
- 8269 019a 3A68 ldr r2, [r7]
- 8270 019c DA62 str r2, [r3, #44]
- 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
- 8271 .loc 1 4143 23
- 8272 019e FB68 ldr r3, [r7, #12]
- 8273 01a0 474A ldr r2, .L410+8
- 8274 01a2 5A63 str r2, [r3, #52]
- 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 8275 .loc 1 4145 13
- 8276 01a4 FB68 ldr r3, [r7, #12]
- 8277 01a6 9B6B ldr r3, [r3, #56]
- 8278 .loc 1 4145 8
- 8279 01a8 002B cmp r3, #0
- 8280 01aa 20D0 beq .L403
- 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
- 8281 .loc 1 4148 11
- 8282 01ac FB68 ldr r3, [r7, #12]
- 8283 01ae 9B6B ldr r3, [r3, #56]
- 8284 .loc 1 4148 38
- 8285 01b0 444A ldr r2, .L410+12
- 8286 01b2 9A62 str r2, [r3, #40]
- 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
- 8287 .loc 1 4151 11
- 8288 01b4 FB68 ldr r3, [r7, #12]
- 8289 01b6 9B6B ldr r3, [r3, #56]
- 8290 .loc 1 4151 39
- 8291 01b8 434A ldr r2, .L410+16
- 8292 01ba 1A63 str r2, [r3, #48]
- 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
- 8293 .loc 1 4154 11
- 8294 01bc FB68 ldr r3, [r7, #12]
- 8295 01be 9B6B ldr r3, [r3, #56]
- 8296 .loc 1 4154 42
- 8297 01c0 0022 movs r2, #0
- 8298 01c2 DA62 str r2, [r3, #44]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 220
- 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
- 8299 .loc 1 4155 11
- 8300 01c4 FB68 ldr r3, [r7, #12]
- 8301 01c6 9B6B ldr r3, [r3, #56]
- 8302 .loc 1 4155 39
- 8303 01c8 0022 movs r2, #0
- 8304 01ca 5A63 str r2, [r3, #52]
- 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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
- 8305 .loc 1 4158 23
- 8306 01cc FB68 ldr r3, [r7, #12]
- 8307 01ce 986B ldr r0, [r3, #56]
- 8308 01d0 B968 ldr r1, [r7, #8]
- 8309 .loc 1 4158 86
- 8310 01d2 FB68 ldr r3, [r7, #12]
- 8311 01d4 1B68 ldr r3, [r3]
- 8312 .loc 1 4158 81
- 8313 01d6 2833 adds r3, r3, #40
- 8314 .loc 1 4158 23
- 8315 01d8 1A46 mov r2, r3
- 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 8316 .loc 1 4159 44
- 8317 01da FB68 ldr r3, [r7, #12]
- 8318 01dc 1B8D ldrh r3, [r3, #40]
- 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
- 8319 .loc 1 4158 23
- 8320 01de FFF7FEFF bl HAL_DMA_Start_IT
- 8321 01e2 0346 mov r3, r0
- 8322 01e4 FB75 strb r3, [r7, #23]
- 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 8323 .loc 1 4176 8
- 8324 01e6 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 8325 01e8 002B cmp r3, #0
- 8326 01ea 36D1 bne .L405
- 8327 01ec 13E0 b .L408
- 8328 .L403:
- 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 8329 .loc 1 4164 23
- 8330 01ee FB68 ldr r3, [r7, #12]
- 8331 01f0 2822 movs r2, #40
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 221
- 8332 01f2 83F84120 strb r2, [r3, #65]
- 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 8333 .loc 1 4165 23
- 8334 01f6 FB68 ldr r3, [r7, #12]
- 8335 01f8 0022 movs r2, #0
- 8336 01fa 83F84220 strb r2, [r3, #66]
- 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 8337 .loc 1 4168 23
- 8338 01fe FB68 ldr r3, [r7, #12]
- 8339 0200 5B6C ldr r3, [r3, #68]
- 8340 0202 43F08002 orr r2, r3, #128
- 8341 0206 FB68 ldr r3, [r7, #12]
- 8342 0208 5A64 str r2, [r3, #68]
- 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 8343 .loc 1 4171 7
- 8344 020a FB68 ldr r3, [r7, #12]
- 8345 020c 0022 movs r2, #0
- 8346 020e 83F84020 strb r2, [r3, #64]
- 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 8347 .loc 1 4173 14
- 8348 0212 0123 movs r3, #1
- 8349 0214 5BE0 b .L399
- 8350 .L408:
- 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 8351 .loc 1 4179 23
- 8352 0216 FB68 ldr r3, [r7, #12]
- 8353 0218 5B8D ldrh r3, [r3, #42] @ movhi
- 8354 021a 9AB2 uxth r2, r3
- 8355 .loc 1 4179 30
- 8356 021c FB68 ldr r3, [r7, #12]
- 8357 021e 1B8D ldrh r3, [r3, #40]
- 8358 .loc 1 4179 23
- 8359 0220 D31A subs r3, r2, r3
- 8360 0222 9AB2 uxth r2, r3
- 8361 0224 FB68 ldr r3, [r7, #12]
- 8362 0226 5A85 strh r2, [r3, #42] @ movhi
- 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
- 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
- 8363 .loc 1 4182 22
- 8364 0228 FB68 ldr r3, [r7, #12]
- 8365 022a 0022 movs r2, #0
- 8366 022c 1A85 strh r2, [r3, #40] @ movhi
- 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 222
- 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
- 8367 .loc 1 4199 11
- 8368 022e FB68 ldr r3, [r7, #12]
- 8369 0230 1B68 ldr r3, [r3]
- 8370 0232 9B69 ldr r3, [r3, #24]
- 8371 0234 03F00803 and r3, r3, #8
- 8372 0238 082B cmp r3, #8
- 8373 023a 0CBF ite eq
- 8374 023c 0123 moveq r3, #1
- 8375 023e 0023 movne r3, #0
- 8376 0240 DBB2 uxtb r3, r3
- 8377 .loc 1 4199 9
- 8378 0242 BB75 strb r3, [r7, #22]
- 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
- 8379 .loc 1 4200 10
- 8380 0244 FB68 ldr r3, [r7, #12]
- 8381 0246 1B68 ldr r3, [r3]
- 8382 0248 9B69 ldr r3, [r3, #24]
- 8383 024a 1B0C lsrs r3, r3, #16
- 8384 024c DBB2 uxtb r3, r3
- 8385 024e 03F00103 and r3, r3, #1
- 8386 0252 DBB2 uxtb r3, r3
- 8387 .loc 1 4200 8
- 8388 0254 012B cmp r3, #1
- 8389 0256 1BD1 bne .L407
- 8390 0258 13E0 b .L409
- 8391 .L405:
- 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 8392 .loc 1 4187 23
- 8393 025a FB68 ldr r3, [r7, #12]
- 8394 025c 2822 movs r2, #40
- 8395 025e 83F84120 strb r2, [r3, #65]
- 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 8396 .loc 1 4188 23
- 8397 0262 FB68 ldr r3, [r7, #12]
- 8398 0264 0022 movs r2, #0
- 8399 0266 83F84220 strb r2, [r3, #66]
- 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 8400 .loc 1 4191 23
- 8401 026a FB68 ldr r3, [r7, #12]
- 8402 026c 5B6C ldr r3, [r3, #68]
- 8403 026e 43F01002 orr r2, r3, #16
- 8404 0272 FB68 ldr r3, [r7, #12]
- 8405 0274 5A64 str r2, [r3, #68]
- 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 8406 .loc 1 4194 7
- 8407 0276 FB68 ldr r3, [r7, #12]
- 8408 0278 0022 movs r2, #0
- 8409 027a 83F84020 strb r2, [r3, #64]
- 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 8410 .loc 1 4196 14
- 8411 027e 0123 movs r3, #1
- 8412 0280 25E0 b .L399
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 223
- 8413 .L409:
- 8414 .loc 1 4200 54 discriminator 1
- 8415 0282 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
- 8416 0284 002B cmp r3, #0
- 8417 0286 03D0 beq .L407
- 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
- 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
- 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 8418 .loc 1 4204 7
- 8419 0288 FB68 ldr r3, [r7, #12]
- 8420 028a 1B68 ldr r3, [r3]
- 8421 028c 0822 movs r2, #8
- 8422 028e DA61 str r2, [r3, #28]
- 8423 .L407:
- 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 8424 .loc 1 4208 5
- 8425 0290 FB68 ldr r3, [r7, #12]
- 8426 0292 0022 movs r2, #0
- 8427 0294 83F84020 strb r2, [r3, #64]
- 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 8428 .loc 1 4211 9
- 8429 0298 FB68 ldr r3, [r7, #12]
- 8430 029a 1B68 ldr r3, [r3]
- 8431 .loc 1 4211 25
- 8432 029c 1A68 ldr r2, [r3]
- 8433 .loc 1 4211 9
- 8434 029e FB68 ldr r3, [r7, #12]
- 8435 02a0 1B68 ldr r3, [r3]
- 8436 .loc 1 4211 25
- 8437 02a2 42F48042 orr r2, r2, #16384
- 8438 02a6 1A60 str r2, [r3]
- 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
- 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 8439 .loc 1 4217 5
- 8440 02a8 4FF40041 mov r1, #32768
- 8441 02ac F868 ldr r0, [r7, #12]
- 8442 02ae FFF7FEFF bl I2C_Enable_IRQ
- 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 8443 .loc 1 4219 12
- 8444 02b2 0023 movs r3, #0
- 8445 02b4 0BE0 b .L399
- 8446 .L411:
- 8447 02b6 00BF .align 2
- 8448 .L410:
- 8449 02b8 00000000 .word .LC0
- 8450 02bc 00000000 .word I2C_DMAAbort
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 224
- 8451 02c0 00000000 .word I2C_Slave_ISR_DMA
- 8452 02c4 00000000 .word I2C_DMASlaveTransmitCplt
- 8453 02c8 00000000 .word I2C_DMAError
- 8454 .L396:
- 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 8455 .loc 1 4223 12
- 8456 02cc 0123 movs r3, #1
- 8457 .L399:
- 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 8458 .loc 1 4225 1
- 8459 02ce 1846 mov r0, r3
- 8460 02d0 1837 adds r7, r7, #24
- 8461 .LCFI145:
- 8462 .cfi_def_cfa_offset 8
- 8463 02d2 BD46 mov sp, r7
- 8464 .LCFI146:
- 8465 .cfi_def_cfa_register 13
- 8466 @ sp needed
- 8467 02d4 80BD pop {r7, pc}
- 8468 .cfi_endproc
- 8469 .LFE158:
- 8471 02d6 00BF .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
- 8472 .align 1
- 8473 .global HAL_I2C_Slave_Seq_Receive_IT
- 8474 .syntax unified
- 8475 .thumb
- 8476 .thumb_func
- 8478 HAL_I2C_Slave_Seq_Receive_IT:
- 8479 .LFB159:
- 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
- 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 8480 .loc 1 4239 1
- 8481 .cfi_startproc
- 8482 @ args = 0, pretend = 0, frame = 24
- 8483 @ frame_needed = 1, uses_anonymous_args = 0
- 8484 0000 80B5 push {r7, lr}
- 8485 .LCFI147:
- 8486 .cfi_def_cfa_offset 8
- 8487 .cfi_offset 7, -8
- 8488 .cfi_offset 14, -4
- 8489 0002 86B0 sub sp, sp, #24
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 225
- 8490 .LCFI148:
- 8491 .cfi_def_cfa_offset 32
- 8492 0004 00AF add r7, sp, #0
- 8493 .LCFI149:
- 8494 .cfi_def_cfa_register 7
- 8495 0006 F860 str r0, [r7, #12]
- 8496 0008 B960 str r1, [r7, #8]
- 8497 000a 3B60 str r3, [r7]
- 8498 000c 1346 mov r3, r2 @ movhi
- 8499 000e FB80 strh r3, [r7, #6] @ movhi
- 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
- 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
- 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 8500 .loc 1 4244 3
- 8501 0010 3B68 ldr r3, [r7]
- 8502 0012 002B cmp r3, #0
- 8503 0014 1ED0 beq .L413
- 8504 .loc 1 4244 3 is_stmt 0 discriminator 1
- 8505 0016 3B68 ldr r3, [r7]
- 8506 0018 B3F1807F cmp r3, #16777216
- 8507 001c 1AD0 beq .L413
- 8508 .loc 1 4244 3 discriminator 2
- 8509 001e 3B68 ldr r3, [r7]
- 8510 0020 B3F1807F cmp r3, #16777216
- 8511 0024 16D0 beq .L413
- 8512 .loc 1 4244 3 discriminator 3
- 8513 0026 3B68 ldr r3, [r7]
- 8514 0028 B3F1007F cmp r3, #33554432
- 8515 002c 12D0 beq .L413
- 8516 .loc 1 4244 3 discriminator 4
- 8517 002e 3B68 ldr r3, [r7]
- 8518 0030 B3F1007F cmp r3, #33554432
- 8519 0034 0ED0 beq .L413
- 8520 .loc 1 4244 3 discriminator 5
- 8521 0036 3B68 ldr r3, [r7]
- 8522 0038 002B cmp r3, #0
- 8523 003a 0BD0 beq .L413
- 8524 .loc 1 4244 3 discriminator 6
- 8525 003c 3B68 ldr r3, [r7]
- 8526 003e AA2B cmp r3, #170
- 8527 0040 08D0 beq .L413
- 8528 .loc 1 4244 3 discriminator 7
- 8529 0042 3B68 ldr r3, [r7]
- 8530 0044 B3F52A4F cmp r3, #43520
- 8531 0048 04D0 beq .L413
- 8532 .loc 1 4244 3 discriminator 8
- 8533 004a 41F29401 movw r1, #4244
- 8534 004e 5448 ldr r0, .L421
- 8535 0050 FFF7FEFF bl assert_failed
- 8536 .L413:
- 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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)
- 8537 .loc 1 4246 22 is_stmt 1
- 8538 0054 FB68 ldr r3, [r7, #12]
- 8539 0056 93F84130 ldrb r3, [r3, #65]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 226
- 8540 005a DBB2 uxtb r3, r3
- 8541 .loc 1 4246 30
- 8542 005c 03F02803 and r3, r3, #40
- 8543 .loc 1 4246 6
- 8544 0060 282B cmp r3, #40
- 8545 0062 40F09880 bne .L414
- 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 8546 .loc 1 4248 8
- 8547 0066 BB68 ldr r3, [r7, #8]
- 8548 0068 002B cmp r3, #0
- 8549 006a 02D0 beq .L415
- 8550 .loc 1 4248 25 discriminator 1
- 8551 006c FB88 ldrh r3, [r7, #6]
- 8552 006e 002B cmp r3, #0
- 8553 0070 05D1 bne .L416
- 8554 .L415:
- 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 8555 .loc 1 4250 23
- 8556 0072 FB68 ldr r3, [r7, #12]
- 8557 0074 4FF40072 mov r2, #512
- 8558 0078 5A64 str r2, [r3, #68]
- 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 8559 .loc 1 4251 15
- 8560 007a 0123 movs r3, #1
- 8561 007c 8CE0 b .L417
- 8562 .L416:
- 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
- 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
- 8563 .loc 1 4255 5
- 8564 007e 48F20201 movw r1, #32770
- 8565 0082 F868 ldr r0, [r7, #12]
- 8566 0084 FFF7FEFF bl I2C_Disable_IRQ
- 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 8567 .loc 1 4258 5
- 8568 0088 FB68 ldr r3, [r7, #12]
- 8569 008a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 8570 008e 012B cmp r3, #1
- 8571 0090 01D1 bne .L418
- 8572 .loc 1 4258 5 is_stmt 0 discriminator 1
- 8573 0092 0223 movs r3, #2
- 8574 0094 80E0 b .L417
- 8575 .L418:
- 8576 .loc 1 4258 5 discriminator 2
- 8577 0096 FB68 ldr r3, [r7, #12]
- 8578 0098 0122 movs r2, #1
- 8579 009a 83F84020 strb r2, [r3, #64]
- 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
- 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
- 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
- 8580 .loc 1 4262 13 is_stmt 1 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 227
- 8581 009e FB68 ldr r3, [r7, #12]
- 8582 00a0 93F84130 ldrb r3, [r3, #65]
- 8583 00a4 DBB2 uxtb r3, r3
- 8584 .loc 1 4262 8 discriminator 2
- 8585 00a6 292B cmp r3, #41
- 8586 00a8 2AD1 bne .L419
- 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
- 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 8587 .loc 1 4265 7
- 8588 00aa 0121 movs r1, #1
- 8589 00ac F868 ldr r0, [r7, #12]
- 8590 00ae FFF7FEFF bl I2C_Disable_IRQ
- 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
- 8591 .loc 1 4267 16
- 8592 00b2 FB68 ldr r3, [r7, #12]
- 8593 00b4 1B68 ldr r3, [r3]
- 8594 .loc 1 4267 26
- 8595 00b6 1B68 ldr r3, [r3]
- 8596 .loc 1 4267 32
- 8597 00b8 03F48043 and r3, r3, #16384
- 8598 .loc 1 4267 10
- 8599 00bc B3F5804F cmp r3, #16384
- 8600 00c0 1ED1 bne .L419
- 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 8601 .loc 1 4269 13
- 8602 00c2 FB68 ldr r3, [r7, #12]
- 8603 00c4 1B68 ldr r3, [r3]
- 8604 .loc 1 4269 29
- 8605 00c6 1A68 ldr r2, [r3]
- 8606 .loc 1 4269 13
- 8607 00c8 FB68 ldr r3, [r7, #12]
- 8608 00ca 1B68 ldr r3, [r3]
- 8609 .loc 1 4269 29
- 8610 00cc 22F48042 bic r2, r2, #16384
- 8611 00d0 1A60 str r2, [r3]
- 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
- 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 8612 .loc 1 4272 17
- 8613 00d2 FB68 ldr r3, [r7, #12]
- 8614 00d4 9B6B ldr r3, [r3, #56]
- 8615 .loc 1 4272 12
- 8616 00d6 002B cmp r3, #0
- 8617 00d8 12D0 beq .L419
- 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
- 8618 .loc 1 4276 15
- 8619 00da FB68 ldr r3, [r7, #12]
- 8620 00dc 9B6B ldr r3, [r3, #56]
- 8621 .loc 1 4276 43
- 8622 00de 314A ldr r2, .L421+4
- 8623 00e0 5A63 str r2, [r3, #52]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 228
- 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
- 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
- 8624 .loc 1 4279 15
- 8625 00e2 FB68 ldr r3, [r7, #12]
- 8626 00e4 9B6B ldr r3, [r3, #56]
- 8627 00e6 1846 mov r0, r3
- 8628 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
- 8629 00ec 0346 mov r3, r0
- 8630 .loc 1 4279 14
- 8631 00ee 002B cmp r3, #0
- 8632 00f0 06D0 beq .L419
- 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
- 8633 .loc 1 4282 17
- 8634 00f2 FB68 ldr r3, [r7, #12]
- 8635 00f4 9B6B ldr r3, [r3, #56]
- 8636 .loc 1 4282 25
- 8637 00f6 5B6B ldr r3, [r3, #52]
- 8638 .loc 1 4282 49
- 8639 00f8 FA68 ldr r2, [r7, #12]
- 8640 00fa 926B ldr r2, [r2, #56]
- 8641 .loc 1 4282 13
- 8642 00fc 1046 mov r0, r2
- 8643 00fe 9847 blx r3
- 8644 .LVL3:
- 8645 .L419:
- 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
- 8646 .loc 1 4288 21
- 8647 0100 FB68 ldr r3, [r7, #12]
- 8648 0102 2A22 movs r2, #42
- 8649 0104 83F84120 strb r2, [r3, #65]
- 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 8650 .loc 1 4289 21
- 8651 0108 FB68 ldr r3, [r7, #12]
- 8652 010a 2022 movs r2, #32
- 8653 010c 83F84220 strb r2, [r3, #66]
- 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 8654 .loc 1 4290 21
- 8655 0110 FB68 ldr r3, [r7, #12]
- 8656 0112 0022 movs r2, #0
- 8657 0114 5A64 str r2, [r3, #68]
- 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 8658 .loc 1 4293 9
- 8659 0116 FB68 ldr r3, [r7, #12]
- 8660 0118 1B68 ldr r3, [r3]
- 8661 .loc 1 4293 25
- 8662 011a 5A68 ldr r2, [r3, #4]
- 8663 .loc 1 4293 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 229
- 8664 011c FB68 ldr r3, [r7, #12]
- 8665 011e 1B68 ldr r3, [r3]
- 8666 .loc 1 4293 25
- 8667 0120 22F40042 bic r2, r2, #32768
- 8668 0124 5A60 str r2, [r3, #4]
- 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 8669 .loc 1 4296 23
- 8670 0126 FB68 ldr r3, [r7, #12]
- 8671 0128 BA68 ldr r2, [r7, #8]
- 8672 012a 5A62 str r2, [r3, #36]
- 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 8673 .loc 1 4297 23
- 8674 012c FB68 ldr r3, [r7, #12]
- 8675 012e FA88 ldrh r2, [r7, #6] @ movhi
- 8676 0130 5A85 strh r2, [r3, #42] @ movhi
- 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 8677 .loc 1 4298 29
- 8678 0132 FB68 ldr r3, [r7, #12]
- 8679 0134 5B8D ldrh r3, [r3, #42] @ movhi
- 8680 0136 9AB2 uxth r2, r3
- 8681 .loc 1 4298 23
- 8682 0138 FB68 ldr r3, [r7, #12]
- 8683 013a 1A85 strh r2, [r3, #40] @ movhi
- 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 8684 .loc 1 4299 23
- 8685 013c FB68 ldr r3, [r7, #12]
- 8686 013e 3A68 ldr r2, [r7]
- 8687 0140 DA62 str r2, [r3, #44]
- 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
- 8688 .loc 1 4300 23
- 8689 0142 FB68 ldr r3, [r7, #12]
- 8690 0144 184A ldr r2, .L421+8
- 8691 0146 5A63 str r2, [r3, #52]
- 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
- 8692 .loc 1 4302 11
- 8693 0148 FB68 ldr r3, [r7, #12]
- 8694 014a 1B68 ldr r3, [r3]
- 8695 014c 9B69 ldr r3, [r3, #24]
- 8696 014e 03F00803 and r3, r3, #8
- 8697 0152 082B cmp r3, #8
- 8698 0154 0CBF ite eq
- 8699 0156 0123 moveq r3, #1
- 8700 0158 0023 movne r3, #0
- 8701 015a DBB2 uxtb r3, r3
- 8702 .loc 1 4302 9
- 8703 015c FB75 strb r3, [r7, #23]
- 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
- 8704 .loc 1 4303 10
- 8705 015e FB68 ldr r3, [r7, #12]
- 8706 0160 1B68 ldr r3, [r3]
- 8707 0162 9B69 ldr r3, [r3, #24]
- 8708 0164 1B0C lsrs r3, r3, #16
- 8709 0166 DBB2 uxtb r3, r3
- 8710 0168 03F00103 and r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 230
- 8711 016c DBB2 uxtb r3, r3
- 8712 .loc 1 4303 8
- 8713 016e 002B cmp r3, #0
- 8714 0170 06D1 bne .L420
- 8715 .loc 1 4303 55 discriminator 1
- 8716 0172 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 8717 0174 002B cmp r3, #0
- 8718 0176 03D0 beq .L420
- 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
- 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
- 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 8719 .loc 1 4307 7
- 8720 0178 FB68 ldr r3, [r7, #12]
- 8721 017a 1B68 ldr r3, [r3]
- 8722 017c 0822 movs r2, #8
- 8723 017e DA61 str r2, [r3, #28]
- 8724 .L420:
- 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 8725 .loc 1 4311 5
- 8726 0180 FB68 ldr r3, [r7, #12]
- 8727 0182 0022 movs r2, #0
- 8728 0184 83F84020 strb r2, [r3, #64]
- 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
- 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
- 8729 .loc 1 4317 5
- 8730 0188 48F20201 movw r1, #32770
- 8731 018c F868 ldr r0, [r7, #12]
- 8732 018e FFF7FEFF bl I2C_Enable_IRQ
- 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 8733 .loc 1 4319 12
- 8734 0192 0023 movs r3, #0
- 8735 0194 00E0 b .L417
- 8736 .L414:
- 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 8737 .loc 1 4323 12
- 8738 0196 0123 movs r3, #1
- 8739 .L417:
- 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 8740 .loc 1 4325 1
- 8741 0198 1846 mov r0, r3
- 8742 019a 1837 adds r7, r7, #24
- 8743 .LCFI150:
- 8744 .cfi_def_cfa_offset 8
- 8745 019c BD46 mov sp, r7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 231
- 8746 .LCFI151:
- 8747 .cfi_def_cfa_register 13
- 8748 @ sp needed
- 8749 019e 80BD pop {r7, pc}
- 8750 .L422:
- 8751 .align 2
- 8752 .L421:
- 8753 01a0 00000000 .word .LC0
- 8754 01a4 00000000 .word I2C_DMAAbort
- 8755 01a8 00000000 .word I2C_Slave_ISR_IT
- 8756 .cfi_endproc
- 8757 .LFE159:
- 8759 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
- 8760 .align 1
- 8761 .global HAL_I2C_Slave_Seq_Receive_DMA
- 8762 .syntax unified
- 8763 .thumb
- 8764 .thumb_func
- 8766 HAL_I2C_Slave_Seq_Receive_DMA:
- 8767 .LFB160:
- 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
- 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
- 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
- 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
- 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
- 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 8768 .loc 1 4339 1
- 8769 .cfi_startproc
- 8770 @ args = 0, pretend = 0, frame = 24
- 8771 @ frame_needed = 1, uses_anonymous_args = 0
- 8772 0000 80B5 push {r7, lr}
- 8773 .LCFI152:
- 8774 .cfi_def_cfa_offset 8
- 8775 .cfi_offset 7, -8
- 8776 .cfi_offset 14, -4
- 8777 0002 86B0 sub sp, sp, #24
- 8778 .LCFI153:
- 8779 .cfi_def_cfa_offset 32
- 8780 0004 00AF add r7, sp, #0
- 8781 .LCFI154:
- 8782 .cfi_def_cfa_register 7
- 8783 0006 F860 str r0, [r7, #12]
- 8784 0008 B960 str r1, [r7, #8]
- 8785 000a 3B60 str r3, [r7]
- 8786 000c 1346 mov r3, r2 @ movhi
- 8787 000e FB80 strh r3, [r7, #6] @ movhi
- 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
- 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
- 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 232
- 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
- 8788 .loc 1 4345 3
- 8789 0010 3B68 ldr r3, [r7]
- 8790 0012 002B cmp r3, #0
- 8791 0014 1ED0 beq .L424
- 8792 .loc 1 4345 3 is_stmt 0 discriminator 1
- 8793 0016 3B68 ldr r3, [r7]
- 8794 0018 B3F1807F cmp r3, #16777216
- 8795 001c 1AD0 beq .L424
- 8796 .loc 1 4345 3 discriminator 2
- 8797 001e 3B68 ldr r3, [r7]
- 8798 0020 B3F1807F cmp r3, #16777216
- 8799 0024 16D0 beq .L424
- 8800 .loc 1 4345 3 discriminator 3
- 8801 0026 3B68 ldr r3, [r7]
- 8802 0028 B3F1007F cmp r3, #33554432
- 8803 002c 12D0 beq .L424
- 8804 .loc 1 4345 3 discriminator 4
- 8805 002e 3B68 ldr r3, [r7]
- 8806 0030 B3F1007F cmp r3, #33554432
- 8807 0034 0ED0 beq .L424
- 8808 .loc 1 4345 3 discriminator 5
- 8809 0036 3B68 ldr r3, [r7]
- 8810 0038 002B cmp r3, #0
- 8811 003a 0BD0 beq .L424
- 8812 .loc 1 4345 3 discriminator 6
- 8813 003c 3B68 ldr r3, [r7]
- 8814 003e AA2B cmp r3, #170
- 8815 0040 08D0 beq .L424
- 8816 .loc 1 4345 3 discriminator 7
- 8817 0042 3B68 ldr r3, [r7]
- 8818 0044 B3F52A4F cmp r3, #43520
- 8819 0048 04D0 beq .L424
- 8820 .loc 1 4345 3 discriminator 8
- 8821 004a 41F2F901 movw r1, #4345
- 8822 004e 9A48 ldr r0, .L439
- 8823 0050 FFF7FEFF bl assert_failed
- 8824 .L424:
- 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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)
- 8825 .loc 1 4347 22 is_stmt 1
- 8826 0054 FB68 ldr r3, [r7, #12]
- 8827 0056 93F84130 ldrb r3, [r3, #65]
- 8828 005a DBB2 uxtb r3, r3
- 8829 .loc 1 4347 30
- 8830 005c 03F02803 and r3, r3, #40
- 8831 .loc 1 4347 6
- 8832 0060 282B cmp r3, #40
- 8833 0062 40F03381 bne .L425
- 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
- 8834 .loc 1 4349 8
- 8835 0066 BB68 ldr r3, [r7, #8]
- 8836 0068 002B cmp r3, #0
- 8837 006a 02D0 beq .L426
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 233
- 8838 .loc 1 4349 25 discriminator 1
- 8839 006c FB88 ldrh r3, [r7, #6]
- 8840 006e 002B cmp r3, #0
- 8841 0070 05D1 bne .L427
- 8842 .L426:
- 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
- 8843 .loc 1 4351 23
- 8844 0072 FB68 ldr r3, [r7, #12]
- 8845 0074 4FF40072 mov r2, #512
- 8846 0078 5A64 str r2, [r3, #68]
- 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 8847 .loc 1 4352 15
- 8848 007a 0123 movs r3, #1
- 8849 007c 27E1 b .L428
- 8850 .L427:
- 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
- 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
- 8851 .loc 1 4356 5
- 8852 007e 48F20201 movw r1, #32770
- 8853 0082 F868 ldr r0, [r7, #12]
- 8854 0084 FFF7FEFF bl I2C_Disable_IRQ
- 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 8855 .loc 1 4359 5
- 8856 0088 FB68 ldr r3, [r7, #12]
- 8857 008a 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 8858 008e 012B cmp r3, #1
- 8859 0090 01D1 bne .L429
- 8860 .loc 1 4359 5 is_stmt 0 discriminator 1
- 8861 0092 0223 movs r3, #2
- 8862 0094 1BE1 b .L428
- 8863 .L429:
- 8864 .loc 1 4359 5 discriminator 2
- 8865 0096 FB68 ldr r3, [r7, #12]
- 8866 0098 0122 movs r2, #1
- 8867 009a 83F84020 strb r2, [r3, #64]
- 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
- 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
- 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
- 8868 .loc 1 4363 13 is_stmt 1 discriminator 2
- 8869 009e FB68 ldr r3, [r7, #12]
- 8870 00a0 93F84130 ldrb r3, [r3, #65]
- 8871 00a4 DBB2 uxtb r3, r3
- 8872 .loc 1 4363 8 discriminator 2
- 8873 00a6 292B cmp r3, #41
- 8874 00a8 2BD1 bne .L430
- 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
- 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 8875 .loc 1 4366 7
- 8876 00aa 0121 movs r1, #1
- 8877 00ac F868 ldr r0, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 234
- 8878 00ae FFF7FEFF bl I2C_Disable_IRQ
- 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
- 8879 .loc 1 4368 16
- 8880 00b2 FB68 ldr r3, [r7, #12]
- 8881 00b4 1B68 ldr r3, [r3]
- 8882 .loc 1 4368 26
- 8883 00b6 1B68 ldr r3, [r3]
- 8884 .loc 1 4368 32
- 8885 00b8 03F48043 and r3, r3, #16384
- 8886 .loc 1 4368 10
- 8887 00bc B3F5804F cmp r3, #16384
- 8888 00c0 4CD1 bne .L431
- 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
- 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 8889 .loc 1 4371 17
- 8890 00c2 FB68 ldr r3, [r7, #12]
- 8891 00c4 9B6B ldr r3, [r3, #56]
- 8892 .loc 1 4371 12
- 8893 00c6 002B cmp r3, #0
- 8894 00c8 48D0 beq .L431
- 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 8895 .loc 1 4373 15
- 8896 00ca FB68 ldr r3, [r7, #12]
- 8897 00cc 1B68 ldr r3, [r3]
- 8898 .loc 1 4373 31
- 8899 00ce 1A68 ldr r2, [r3]
- 8900 .loc 1 4373 15
- 8901 00d0 FB68 ldr r3, [r7, #12]
- 8902 00d2 1B68 ldr r3, [r3]
- 8903 .loc 1 4373 31
- 8904 00d4 22F48042 bic r2, r2, #16384
- 8905 00d8 1A60 str r2, [r3]
- 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
- 8906 .loc 1 4377 15
- 8907 00da FB68 ldr r3, [r7, #12]
- 8908 00dc 9B6B ldr r3, [r3, #56]
- 8909 .loc 1 4377 43
- 8910 00de 774A ldr r2, .L439+4
- 8911 00e0 5A63 str r2, [r3, #52]
- 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
- 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
- 8912 .loc 1 4380 15
- 8913 00e2 FB68 ldr r3, [r7, #12]
- 8914 00e4 9B6B ldr r3, [r3, #56]
- 8915 00e6 1846 mov r0, r3
- 8916 00e8 FFF7FEFF bl HAL_DMA_Abort_IT
- 8917 00ec 0346 mov r3, r0
- 8918 .loc 1 4380 14
- 8919 00ee 002B cmp r3, #0
- 8920 00f0 34D0 beq .L431
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 235
- 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
- 8921 .loc 1 4383 17
- 8922 00f2 FB68 ldr r3, [r7, #12]
- 8923 00f4 9B6B ldr r3, [r3, #56]
- 8924 .loc 1 4383 25
- 8925 00f6 5B6B ldr r3, [r3, #52]
- 8926 .loc 1 4383 49
- 8927 00f8 FA68 ldr r2, [r7, #12]
- 8928 00fa 926B ldr r2, [r2, #56]
- 8929 .loc 1 4383 13
- 8930 00fc 1046 mov r0, r2
- 8931 00fe 9847 blx r3
- 8932 .LVL4:
- 8933 0100 2CE0 b .L431
- 8934 .L430:
- 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
- 8935 .loc 1 4388 18
- 8936 0102 FB68 ldr r3, [r7, #12]
- 8937 0104 93F84130 ldrb r3, [r3, #65]
- 8938 0108 DBB2 uxtb r3, r3
- 8939 .loc 1 4388 13
- 8940 010a 2A2B cmp r3, #42
- 8941 010c 26D1 bne .L431
- 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
- 8942 .loc 1 4390 16
- 8943 010e FB68 ldr r3, [r7, #12]
- 8944 0110 1B68 ldr r3, [r3]
- 8945 .loc 1 4390 26
- 8946 0112 1B68 ldr r3, [r3]
- 8947 .loc 1 4390 32
- 8948 0114 03F40043 and r3, r3, #32768
- 8949 .loc 1 4390 10
- 8950 0118 B3F5004F cmp r3, #32768
- 8951 011c 1ED1 bne .L431
- 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 8952 .loc 1 4392 13
- 8953 011e FB68 ldr r3, [r7, #12]
- 8954 0120 1B68 ldr r3, [r3]
- 8955 .loc 1 4392 29
- 8956 0122 1A68 ldr r2, [r3]
- 8957 .loc 1 4392 13
- 8958 0124 FB68 ldr r3, [r7, #12]
- 8959 0126 1B68 ldr r3, [r3]
- 8960 .loc 1 4392 29
- 8961 0128 22F40042 bic r2, r2, #32768
- 8962 012c 1A60 str r2, [r3]
- 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
- 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 236
- 8963 .loc 1 4395 17
- 8964 012e FB68 ldr r3, [r7, #12]
- 8965 0130 DB6B ldr r3, [r3, #60]
- 8966 .loc 1 4395 12
- 8967 0132 002B cmp r3, #0
- 8968 0134 12D0 beq .L431
- 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
- 8969 .loc 1 4399 15
- 8970 0136 FB68 ldr r3, [r7, #12]
- 8971 0138 DB6B ldr r3, [r3, #60]
- 8972 .loc 1 4399 43
- 8973 013a 604A ldr r2, .L439+4
- 8974 013c 5A63 str r2, [r3, #52]
- 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
- 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
- 8975 .loc 1 4402 15
- 8976 013e FB68 ldr r3, [r7, #12]
- 8977 0140 DB6B ldr r3, [r3, #60]
- 8978 0142 1846 mov r0, r3
- 8979 0144 FFF7FEFF bl HAL_DMA_Abort_IT
- 8980 0148 0346 mov r3, r0
- 8981 .loc 1 4402 14
- 8982 014a 002B cmp r3, #0
- 8983 014c 06D0 beq .L431
- 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
- 8984 .loc 1 4405 17
- 8985 014e FB68 ldr r3, [r7, #12]
- 8986 0150 DB6B ldr r3, [r3, #60]
- 8987 .loc 1 4405 25
- 8988 0152 5B6B ldr r3, [r3, #52]
- 8989 .loc 1 4405 49
- 8990 0154 FA68 ldr r2, [r7, #12]
- 8991 0156 D26B ldr r2, [r2, #60]
- 8992 .loc 1 4405 13
- 8993 0158 1046 mov r0, r2
- 8994 015a 9847 blx r3
- 8995 .LVL5:
- 8996 .L431:
- 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
- 8997 .loc 1 4415 21
- 8998 015c FB68 ldr r3, [r7, #12]
- 8999 015e 2A22 movs r2, #42
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 237
- 9000 0160 83F84120 strb r2, [r3, #65]
- 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
- 9001 .loc 1 4416 21
- 9002 0164 FB68 ldr r3, [r7, #12]
- 9003 0166 2022 movs r2, #32
- 9004 0168 83F84220 strb r2, [r3, #66]
- 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 9005 .loc 1 4417 21
- 9006 016c FB68 ldr r3, [r7, #12]
- 9007 016e 0022 movs r2, #0
- 9008 0170 5A64 str r2, [r3, #68]
- 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
- 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
- 9009 .loc 1 4420 9
- 9010 0172 FB68 ldr r3, [r7, #12]
- 9011 0174 1B68 ldr r3, [r3]
- 9012 .loc 1 4420 25
- 9013 0176 5A68 ldr r2, [r3, #4]
- 9014 .loc 1 4420 9
- 9015 0178 FB68 ldr r3, [r7, #12]
- 9016 017a 1B68 ldr r3, [r3]
- 9017 .loc 1 4420 25
- 9018 017c 22F40042 bic r2, r2, #32768
- 9019 0180 5A60 str r2, [r3, #4]
- 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
- 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
- 9020 .loc 1 4423 23
- 9021 0182 FB68 ldr r3, [r7, #12]
- 9022 0184 BA68 ldr r2, [r7, #8]
- 9023 0186 5A62 str r2, [r3, #36]
- 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
- 9024 .loc 1 4424 23
- 9025 0188 FB68 ldr r3, [r7, #12]
- 9026 018a FA88 ldrh r2, [r7, #6] @ movhi
- 9027 018c 5A85 strh r2, [r3, #42] @ movhi
- 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 9028 .loc 1 4425 29
- 9029 018e FB68 ldr r3, [r7, #12]
- 9030 0190 5B8D ldrh r3, [r3, #42] @ movhi
- 9031 0192 9AB2 uxth r2, r3
- 9032 .loc 1 4425 23
- 9033 0194 FB68 ldr r3, [r7, #12]
- 9034 0196 1A85 strh r2, [r3, #40] @ movhi
- 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
- 9035 .loc 1 4426 23
- 9036 0198 FB68 ldr r3, [r7, #12]
- 9037 019a 3A68 ldr r2, [r7]
- 9038 019c DA62 str r2, [r3, #44]
- 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
- 9039 .loc 1 4427 23
- 9040 019e FB68 ldr r3, [r7, #12]
- 9041 01a0 474A ldr r2, .L439+8
- 9042 01a2 5A63 str r2, [r3, #52]
- 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 238
- 9043 .loc 1 4429 13
- 9044 01a4 FB68 ldr r3, [r7, #12]
- 9045 01a6 DB6B ldr r3, [r3, #60]
- 9046 .loc 1 4429 8
- 9047 01a8 002B cmp r3, #0
- 9048 01aa 20D0 beq .L432
- 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
- 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
- 9049 .loc 1 4432 11
- 9050 01ac FB68 ldr r3, [r7, #12]
- 9051 01ae DB6B ldr r3, [r3, #60]
- 9052 .loc 1 4432 38
- 9053 01b0 444A ldr r2, .L439+12
- 9054 01b2 9A62 str r2, [r3, #40]
- 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
- 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
- 9055 .loc 1 4435 11
- 9056 01b4 FB68 ldr r3, [r7, #12]
- 9057 01b6 DB6B ldr r3, [r3, #60]
- 9058 .loc 1 4435 39
- 9059 01b8 434A ldr r2, .L439+16
- 9060 01ba 1A63 str r2, [r3, #48]
- 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
- 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
- 9061 .loc 1 4438 11
- 9062 01bc FB68 ldr r3, [r7, #12]
- 9063 01be DB6B ldr r3, [r3, #60]
- 9064 .loc 1 4438 42
- 9065 01c0 0022 movs r2, #0
- 9066 01c2 DA62 str r2, [r3, #44]
- 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
- 9067 .loc 1 4439 11
- 9068 01c4 FB68 ldr r3, [r7, #12]
- 9069 01c6 DB6B ldr r3, [r3, #60]
- 9070 .loc 1 4439 39
- 9071 01c8 0022 movs r2, #0
- 9072 01ca 5A63 str r2, [r3, #52]
- 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
- 9073 .loc 1 4442 23
- 9074 01cc FB68 ldr r3, [r7, #12]
- 9075 01ce D86B ldr r0, [r3, #60]
- 9076 .loc 1 4442 69
- 9077 01d0 FB68 ldr r3, [r7, #12]
- 9078 01d2 1B68 ldr r3, [r3]
- 9079 .loc 1 4442 64
- 9080 01d4 2433 adds r3, r3, #36
- 9081 .loc 1 4442 23
- 9082 01d6 1946 mov r1, r3
- 9083 01d8 BA68 ldr r2, [r7, #8]
- 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
- 9084 .loc 1 4443 61
- 9085 01da FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 239
- 9086 01dc 1B8D ldrh r3, [r3, #40]
- 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
- 9087 .loc 1 4442 23
- 9088 01de FFF7FEFF bl HAL_DMA_Start_IT
- 9089 01e2 0346 mov r3, r0
- 9090 01e4 FB75 strb r3, [r7, #23]
- 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
- 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
- 9091 .loc 1 4460 8
- 9092 01e6 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 9093 01e8 002B cmp r3, #0
- 9094 01ea 36D1 bne .L434
- 9095 01ec 13E0 b .L437
- 9096 .L432:
- 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 9097 .loc 1 4448 23
- 9098 01ee FB68 ldr r3, [r7, #12]
- 9099 01f0 2822 movs r2, #40
- 9100 01f2 83F84120 strb r2, [r3, #65]
- 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 9101 .loc 1 4449 23
- 9102 01f6 FB68 ldr r3, [r7, #12]
- 9103 01f8 0022 movs r2, #0
- 9104 01fa 83F84220 strb r2, [r3, #66]
- 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 9105 .loc 1 4452 23
- 9106 01fe FB68 ldr r3, [r7, #12]
- 9107 0200 5B6C ldr r3, [r3, #68]
- 9108 0202 43F08002 orr r2, r3, #128
- 9109 0206 FB68 ldr r3, [r7, #12]
- 9110 0208 5A64 str r2, [r3, #68]
- 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 9111 .loc 1 4455 7
- 9112 020a FB68 ldr r3, [r7, #12]
- 9113 020c 0022 movs r2, #0
- 9114 020e 83F84020 strb r2, [r3, #64]
- 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9115 .loc 1 4457 14
- 9116 0212 0123 movs r3, #1
- 9117 0214 5BE0 b .L428
- 9118 .L437:
- 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 240
- 4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 9119 .loc 1 4463 23
- 9120 0216 FB68 ldr r3, [r7, #12]
- 9121 0218 5B8D ldrh r3, [r3, #42] @ movhi
- 9122 021a 9AB2 uxth r2, r3
- 9123 .loc 1 4463 30
- 9124 021c FB68 ldr r3, [r7, #12]
- 9125 021e 1B8D ldrh r3, [r3, #40]
- 9126 .loc 1 4463 23
- 9127 0220 D31A subs r3, r2, r3
- 9128 0222 9AB2 uxth r2, r3
- 9129 0224 FB68 ldr r3, [r7, #12]
- 9130 0226 5A85 strh r2, [r3, #42] @ movhi
- 4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
- 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
- 9131 .loc 1 4466 22
- 9132 0228 FB68 ldr r3, [r7, #12]
- 9133 022a 0022 movs r2, #0
- 9134 022c 1A85 strh r2, [r3, #40] @ movhi
- 4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
- 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
- 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
- 4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
- 9135 .loc 1 4483 11
- 9136 022e FB68 ldr r3, [r7, #12]
- 9137 0230 1B68 ldr r3, [r3]
- 9138 0232 9B69 ldr r3, [r3, #24]
- 9139 0234 03F00803 and r3, r3, #8
- 9140 0238 082B cmp r3, #8
- 9141 023a 0CBF ite eq
- 9142 023c 0123 moveq r3, #1
- 9143 023e 0023 movne r3, #0
- 9144 0240 DBB2 uxtb r3, r3
- 9145 .loc 1 4483 9
- 9146 0242 BB75 strb r3, [r7, #22]
- 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
- 9147 .loc 1 4484 10
- 9148 0244 FB68 ldr r3, [r7, #12]
- 9149 0246 1B68 ldr r3, [r3]
- 9150 0248 9B69 ldr r3, [r3, #24]
- 9151 024a 1B0C lsrs r3, r3, #16
- 9152 024c DBB2 uxtb r3, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 241
- 9153 024e 03F00103 and r3, r3, #1
- 9154 0252 DBB2 uxtb r3, r3
- 9155 .loc 1 4484 8
- 9156 0254 002B cmp r3, #0
- 9157 0256 1BD1 bne .L436
- 9158 0258 13E0 b .L438
- 9159 .L434:
- 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 9160 .loc 1 4471 23
- 9161 025a FB68 ldr r3, [r7, #12]
- 9162 025c 2822 movs r2, #40
- 9163 025e 83F84120 strb r2, [r3, #65]
- 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 9164 .loc 1 4472 23
- 9165 0262 FB68 ldr r3, [r7, #12]
- 9166 0264 0022 movs r2, #0
- 9167 0266 83F84220 strb r2, [r3, #66]
- 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 9168 .loc 1 4475 23
- 9169 026a FB68 ldr r3, [r7, #12]
- 9170 026c 5B6C ldr r3, [r3, #68]
- 9171 026e 43F01002 orr r2, r3, #16
- 9172 0272 FB68 ldr r3, [r7, #12]
- 9173 0274 5A64 str r2, [r3, #68]
- 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 9174 .loc 1 4478 7
- 9175 0276 FB68 ldr r3, [r7, #12]
- 9176 0278 0022 movs r2, #0
- 9177 027a 83F84020 strb r2, [r3, #64]
- 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9178 .loc 1 4480 14
- 9179 027e 0123 movs r3, #1
- 9180 0280 25E0 b .L428
- 9181 .L438:
- 9182 .loc 1 4484 55 discriminator 1
- 9183 0282 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
- 9184 0284 002B cmp r3, #0
- 9185 0286 03D0 beq .L436
- 4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
- 4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
- 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 9186 .loc 1 4488 7
- 9187 0288 FB68 ldr r3, [r7, #12]
- 9188 028a 1B68 ldr r3, [r3]
- 9189 028c 0822 movs r2, #8
- 9190 028e DA61 str r2, [r3, #28]
- 9191 .L436:
- 4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 9192 .loc 1 4492 5
- 9193 0290 FB68 ldr r3, [r7, #12]
- 9194 0292 0022 movs r2, #0
- 9195 0294 83F84020 strb r2, [r3, #64]
- 4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 242
- 4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 9196 .loc 1 4495 9
- 9197 0298 FB68 ldr r3, [r7, #12]
- 9198 029a 1B68 ldr r3, [r3]
- 9199 .loc 1 4495 25
- 9200 029c 1A68 ldr r2, [r3]
- 9201 .loc 1 4495 9
- 9202 029e FB68 ldr r3, [r7, #12]
- 9203 02a0 1B68 ldr r3, [r3]
- 9204 .loc 1 4495 25
- 9205 02a2 42F40042 orr r2, r2, #32768
- 9206 02a6 1A60 str r2, [r3]
- 4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
- 4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
- 9207 .loc 1 4501 5
- 9208 02a8 48F20201 movw r1, #32770
- 9209 02ac F868 ldr r0, [r7, #12]
- 9210 02ae FFF7FEFF bl I2C_Enable_IRQ
- 4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 9211 .loc 1 4503 12
- 9212 02b2 0023 movs r3, #0
- 9213 02b4 0BE0 b .L428
- 9214 .L440:
- 9215 02b6 00BF .align 2
- 9216 .L439:
- 9217 02b8 00000000 .word .LC0
- 9218 02bc 00000000 .word I2C_DMAAbort
- 9219 02c0 00000000 .word I2C_Slave_ISR_DMA
- 9220 02c4 00000000 .word I2C_DMASlaveReceiveCplt
- 9221 02c8 00000000 .word I2C_DMAError
- 9222 .L425:
- 4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 9223 .loc 1 4507 12
- 9224 02cc 0123 movs r3, #1
- 9225 .L428:
- 4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9226 .loc 1 4509 1
- 9227 02ce 1846 mov r0, r3
- 9228 02d0 1837 adds r7, r7, #24
- 9229 .LCFI155:
- 9230 .cfi_def_cfa_offset 8
- 9231 02d2 BD46 mov sp, r7
- 9232 .LCFI156:
- 9233 .cfi_def_cfa_register 13
- 9234 @ sp needed
- 9235 02d4 80BD pop {r7, pc}
- 9236 .cfi_endproc
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 243
- 9237 .LFE160:
- 9239 02d6 00BF .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
- 9240 .align 1
- 9241 .global HAL_I2C_EnableListen_IT
- 9242 .syntax unified
- 9243 .thumb
- 9244 .thumb_func
- 9246 HAL_I2C_EnableListen_IT:
- 9247 .LFB161:
- 4510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
- 4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
- 4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9248 .loc 1 4518 1
- 9249 .cfi_startproc
- 9250 @ args = 0, pretend = 0, frame = 8
- 9251 @ frame_needed = 1, uses_anonymous_args = 0
- 9252 0000 80B5 push {r7, lr}
- 9253 .LCFI157:
- 9254 .cfi_def_cfa_offset 8
- 9255 .cfi_offset 7, -8
- 9256 .cfi_offset 14, -4
- 9257 0002 82B0 sub sp, sp, #8
- 9258 .LCFI158:
- 9259 .cfi_def_cfa_offset 16
- 9260 0004 00AF add r7, sp, #0
- 9261 .LCFI159:
- 9262 .cfi_def_cfa_register 7
- 9263 0006 7860 str r0, [r7, #4]
- 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
- 9264 .loc 1 4519 11
- 9265 0008 7B68 ldr r3, [r7, #4]
- 9266 000a 93F84130 ldrb r3, [r3, #65]
- 9267 000e DBB2 uxtb r3, r3
- 9268 .loc 1 4519 6
- 9269 0010 202B cmp r3, #32
- 9270 0012 0DD1 bne .L442
- 4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 9271 .loc 1 4521 17
- 9272 0014 7B68 ldr r3, [r7, #4]
- 9273 0016 2822 movs r2, #40
- 9274 0018 83F84120 strb r2, [r3, #65]
- 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
- 9275 .loc 1 4522 19
- 9276 001c 7B68 ldr r3, [r7, #4]
- 9277 001e 074A ldr r2, .L444
- 9278 0020 5A63 str r2, [r3, #52]
- 4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */
- 4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 9279 .loc 1 4525 5
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 244
- 9280 0022 4FF40041 mov r1, #32768
- 9281 0026 7868 ldr r0, [r7, #4]
- 9282 0028 FFF7FEFF bl I2C_Enable_IRQ
- 4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 9283 .loc 1 4527 12
- 9284 002c 0023 movs r3, #0
- 9285 002e 00E0 b .L443
- 9286 .L442:
- 4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 9287 .loc 1 4531 12
- 9288 0030 0223 movs r3, #2
- 9289 .L443:
- 4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9290 .loc 1 4533 1
- 9291 0032 1846 mov r0, r3
- 9292 0034 0837 adds r7, r7, #8
- 9293 .LCFI160:
- 9294 .cfi_def_cfa_offset 8
- 9295 0036 BD46 mov sp, r7
- 9296 .LCFI161:
- 9297 .cfi_def_cfa_register 13
- 9298 @ sp needed
- 9299 0038 80BD pop {r7, pc}
- 9300 .L445:
- 9301 003a 00BF .align 2
- 9302 .L444:
- 9303 003c 00000000 .word I2C_Slave_ISR_IT
- 9304 .cfi_endproc
- 9305 .LFE161:
- 9307 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
- 9308 .align 1
- 9309 .global HAL_I2C_DisableListen_IT
- 9310 .syntax unified
- 9311 .thumb
- 9312 .thumb_func
- 9314 HAL_I2C_DisableListen_IT:
- 9315 .LFB162:
- 4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
- 4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C
- 4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
- 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9316 .loc 1 4542 1
- 9317 .cfi_startproc
- 9318 @ args = 0, pretend = 0, frame = 16
- 9319 @ frame_needed = 1, uses_anonymous_args = 0
- 9320 0000 80B5 push {r7, lr}
- 9321 .LCFI162:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 245
- 9322 .cfi_def_cfa_offset 8
- 9323 .cfi_offset 7, -8
- 9324 .cfi_offset 14, -4
- 9325 0002 84B0 sub sp, sp, #16
- 9326 .LCFI163:
- 9327 .cfi_def_cfa_offset 24
- 9328 0004 00AF add r7, sp, #0
- 9329 .LCFI164:
- 9330 .cfi_def_cfa_register 7
- 9331 0006 7860 str r0, [r7, #4]
- 4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
- 4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp;
- 4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
- 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
- 9332 .loc 1 4547 11
- 9333 0008 7B68 ldr r3, [r7, #4]
- 9334 000a 93F84130 ldrb r3, [r3, #65]
- 9335 000e DBB2 uxtb r3, r3
- 9336 .loc 1 4547 6
- 9337 0010 282B cmp r3, #40
- 9338 0012 21D1 bne .L447
- 4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
- 9339 .loc 1 4549 26
- 9340 0014 7B68 ldr r3, [r7, #4]
- 9341 0016 93F84130 ldrb r3, [r3, #65]
- 9342 001a DBB2 uxtb r3, r3
- 9343 .loc 1 4549 9
- 9344 001c 03F00303 and r3, r3, #3
- 9345 0020 FB60 str r3, [r7, #12]
- 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
- 9346 .loc 1 4550 48
- 9347 0022 7B68 ldr r3, [r7, #4]
- 9348 0024 93F84230 ldrb r3, [r3, #66]
- 9349 0028 DBB2 uxtb r3, r3
- 9350 .loc 1 4550 33
- 9351 002a 1A46 mov r2, r3
- 9352 .loc 1 4550 31
- 9353 002c FB68 ldr r3, [r7, #12]
- 9354 002e 1A43 orrs r2, r2, r3
- 9355 .loc 1 4550 25
- 9356 0030 7B68 ldr r3, [r7, #4]
- 9357 0032 1A63 str r2, [r3, #48]
- 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 9358 .loc 1 4551 17
- 9359 0034 7B68 ldr r3, [r7, #4]
- 9360 0036 2022 movs r2, #32
- 9361 0038 83F84120 strb r2, [r3, #65]
- 4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 9362 .loc 1 4552 16
- 9363 003c 7B68 ldr r3, [r7, #4]
- 9364 003e 0022 movs r2, #0
- 9365 0040 83F84220 strb r2, [r3, #66]
- 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 9366 .loc 1 4553 19
- 9367 0044 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 246
- 9368 0046 0022 movs r2, #0
- 9369 0048 5A63 str r2, [r3, #52]
- 4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */
- 4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 9370 .loc 1 4556 5
- 9371 004a 4FF40041 mov r1, #32768
- 9372 004e 7868 ldr r0, [r7, #4]
- 9373 0050 FFF7FEFF bl I2C_Disable_IRQ
- 4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 9374 .loc 1 4558 12
- 9375 0054 0023 movs r3, #0
- 9376 0056 00E0 b .L448
- 9377 .L447:
- 4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
- 9378 .loc 1 4562 12
- 9379 0058 0223 movs r3, #2
- 9380 .L448:
- 4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9381 .loc 1 4564 1
- 9382 005a 1846 mov r0, r3
- 9383 005c 1037 adds r7, r7, #16
- 9384 .LCFI165:
- 9385 .cfi_def_cfa_offset 8
- 9386 005e BD46 mov sp, r7
- 9387 .LCFI166:
- 9388 .cfi_def_cfa_register 13
- 9389 @ sp needed
- 9390 0060 80BD pop {r7, pc}
- 9391 .cfi_endproc
- 9392 .LFE162:
- 9394 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
- 9395 .align 1
- 9396 .global HAL_I2C_Master_Abort_IT
- 9397 .syntax unified
- 9398 .thumb
- 9399 .thumb_func
- 9401 HAL_I2C_Master_Abort_IT:
- 9402 .LFB163:
- 4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt.
- 4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
- 4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9403 .loc 1 4575 1
- 9404 .cfi_startproc
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 247
- 9405 @ args = 0, pretend = 0, frame = 16
- 9406 @ frame_needed = 1, uses_anonymous_args = 0
- 9407 0000 80B5 push {r7, lr}
- 9408 .LCFI167:
- 9409 .cfi_def_cfa_offset 8
- 9410 .cfi_offset 7, -8
- 9411 .cfi_offset 14, -4
- 9412 0002 86B0 sub sp, sp, #24
- 9413 .LCFI168:
- 9414 .cfi_def_cfa_offset 32
- 9415 0004 02AF add r7, sp, #8
- 9416 .LCFI169:
- 9417 .cfi_def_cfa 7, 24
- 9418 0006 7860 str r0, [r7, #4]
- 9419 0008 0B46 mov r3, r1
- 9420 000a 7B80 strh r3, [r7, #2] @ movhi
- 4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
- 9421 .loc 1 4576 23
- 9422 000c 7B68 ldr r3, [r7, #4]
- 9423 000e 93F84230 ldrb r3, [r3, #66]
- 9424 0012 FB73 strb r3, [r7, #15]
- 4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM))
- 9425 .loc 1 4578 6
- 9426 0014 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 9427 0016 102B cmp r3, #16
- 9428 0018 02D0 beq .L450
- 9429 .loc 1 4578 41 discriminator 1
- 9430 001a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 9431 001c 402B cmp r3, #64
- 9432 001e 3CD1 bne .L451
- 9433 .L450:
- 4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 9434 .loc 1 4581 5
- 9435 0020 7B68 ldr r3, [r7, #4]
- 9436 0022 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 9437 0026 012B cmp r3, #1
- 9438 0028 01D1 bne .L452
- 9439 .loc 1 4581 5 is_stmt 0 discriminator 1
- 9440 002a 0223 movs r3, #2
- 9441 002c 36E0 b .L453
- 9442 .L452:
- 9443 .loc 1 4581 5 discriminator 2
- 9444 002e 7B68 ldr r3, [r7, #4]
- 9445 0030 0122 movs r2, #1
- 9446 0032 83F84020 strb r2, [r3, #64]
- 4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
- 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
- 9447 .loc 1 4584 13 is_stmt 1 discriminator 2
- 9448 0036 7B68 ldr r3, [r7, #4]
- 9449 0038 93F84130 ldrb r3, [r3, #65]
- 9450 003c DBB2 uxtb r3, r3
- 9451 .loc 1 4584 8 discriminator 2
- 9452 003e 212B cmp r3, #33
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 248
- 9453 0040 07D1 bne .L454
- 4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 9454 .loc 1 4586 7
- 9455 0042 0121 movs r1, #1
- 9456 0044 7868 ldr r0, [r7, #4]
- 9457 0046 FFF7FEFF bl I2C_Disable_IRQ
- 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
- 9458 .loc 1 4587 27
- 9459 004a 7B68 ldr r3, [r7, #4]
- 9460 004c 1122 movs r2, #17
- 9461 004e 1A63 str r2, [r3, #48]
- 9462 0050 0CE0 b .L455
- 9463 .L454:
- 4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 9464 .loc 1 4589 18
- 9465 0052 7B68 ldr r3, [r7, #4]
- 9466 0054 93F84130 ldrb r3, [r3, #65]
- 9467 0058 DBB2 uxtb r3, r3
- 9468 .loc 1 4589 13
- 9469 005a 222B cmp r3, #34
- 9470 005c 06D1 bne .L455
- 4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
- 9471 .loc 1 4591 7
- 9472 005e 0221 movs r1, #2
- 9473 0060 7868 ldr r0, [r7, #4]
- 9474 0062 FFF7FEFF bl I2C_Disable_IRQ
- 4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
- 9475 .loc 1 4592 27
- 9476 0066 7B68 ldr r3, [r7, #4]
- 9477 0068 1222 movs r2, #18
- 9478 006a 1A63 str r2, [r3, #48]
- 9479 .L455:
- 4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
- 4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
- 4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
- 9480 .loc 1 4600 17
- 9481 006c 7B68 ldr r3, [r7, #4]
- 9482 006e 6022 movs r2, #96
- 9483 0070 83F84120 strb r2, [r3, #65]
- 4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
- 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
- 4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
- 9484 .loc 1 4604 5
- 9485 0074 7988 ldrh r1, [r7, #2]
- 9486 0076 0B4B ldr r3, .L456
- 9487 0078 0093 str r3, [sp]
- 9488 007a 4FF00073 mov r3, #33554432
- 9489 007e 0122 movs r2, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 249
- 9490 0080 7868 ldr r0, [r7, #4]
- 9491 0082 FFF7FEFF bl I2C_TransferConfig
- 4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 9492 .loc 1 4607 5
- 9493 0086 7B68 ldr r3, [r7, #4]
- 9494 0088 0022 movs r2, #0
- 9495 008a 83F84020 strb r2, [r3, #64]
- 4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
- 4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
- 4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
- 4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
- 9496 .loc 1 4612 5
- 9497 008e 2021 movs r1, #32
- 9498 0090 7868 ldr r0, [r7, #4]
- 9499 0092 FFF7FEFF bl I2C_Enable_IRQ
- 4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 9500 .loc 1 4614 12
- 9501 0096 0023 movs r3, #0
- 9502 0098 00E0 b .L453
- 9503 .L451:
- 4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */
- 4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
- 4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 9504 .loc 1 4620 12
- 9505 009a 0123 movs r3, #1
- 9506 .L453:
- 4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9507 .loc 1 4622 1
- 9508 009c 1846 mov r0, r3
- 9509 009e 1037 adds r7, r7, #16
- 9510 .LCFI170:
- 9511 .cfi_def_cfa_offset 8
- 9512 00a0 BD46 mov sp, r7
- 9513 .LCFI171:
- 9514 .cfi_def_cfa_register 13
- 9515 @ sp needed
- 9516 00a2 80BD pop {r7, pc}
- 9517 .L457:
- 9518 .align 2
- 9519 .L456:
- 9520 00a4 00400080 .word -2147467264
- 9521 .cfi_endproc
- 9522 .LFE163:
- 9524 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
- 9525 .align 1
- 9526 .global HAL_I2C_EV_IRQHandler
- 9527 .syntax unified
- 9528 .thumb
- 9529 .thumb_func
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 250
- 9531 HAL_I2C_EV_IRQHandler:
- 9532 .LFB164:
- 4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
- 4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
- 4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */
- 4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9533 .loc 1 4639 1
- 9534 .cfi_startproc
- 9535 @ args = 0, pretend = 0, frame = 16
- 9536 @ frame_needed = 1, uses_anonymous_args = 0
- 9537 0000 80B5 push {r7, lr}
- 9538 .LCFI172:
- 9539 .cfi_def_cfa_offset 8
- 9540 .cfi_offset 7, -8
- 9541 .cfi_offset 14, -4
- 9542 0002 84B0 sub sp, sp, #16
- 9543 .LCFI173:
- 9544 .cfi_def_cfa_offset 24
- 9545 0004 00AF add r7, sp, #0
- 9546 .LCFI174:
- 9547 .cfi_def_cfa_register 7
- 9548 0006 7860 str r0, [r7, #4]
- 4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
- 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
- 9549 .loc 1 4641 24
- 9550 0008 7B68 ldr r3, [r7, #4]
- 9551 000a 1B68 ldr r3, [r3]
- 9552 .loc 1 4641 12
- 9553 000c 9B69 ldr r3, [r3, #24]
- 9554 000e FB60 str r3, [r7, #12]
- 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
- 9555 .loc 1 4642 24
- 9556 0010 7B68 ldr r3, [r7, #4]
- 9557 0012 1B68 ldr r3, [r3]
- 9558 .loc 1 4642 12
- 9559 0014 1B68 ldr r3, [r3]
- 9560 0016 BB60 str r3, [r7, #8]
- 4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
- 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
- 9561 .loc 1 4645 11
- 9562 0018 7B68 ldr r3, [r7, #4]
- 9563 001a 5B6B ldr r3, [r3, #52]
- 9564 .loc 1 4645 6
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 251
- 9565 001c 002B cmp r3, #0
- 9566 001e 05D0 beq .L460
- 4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
- 9567 .loc 1 4647 9
- 9568 0020 7B68 ldr r3, [r7, #4]
- 9569 0022 5B6B ldr r3, [r3, #52]
- 9570 .loc 1 4647 5
- 9571 0024 BA68 ldr r2, [r7, #8]
- 9572 0026 F968 ldr r1, [r7, #12]
- 9573 0028 7868 ldr r0, [r7, #4]
- 9574 002a 9847 blx r3
- 9575 .LVL6:
- 9576 .L460:
- 4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9577 .loc 1 4649 1
- 9578 002c 00BF nop
- 9579 002e 1037 adds r7, r7, #16
- 9580 .LCFI175:
- 9581 .cfi_def_cfa_offset 8
- 9582 0030 BD46 mov sp, r7
- 9583 .LCFI176:
- 9584 .cfi_def_cfa_register 13
- 9585 @ sp needed
- 9586 0032 80BD pop {r7, pc}
- 9587 .cfi_endproc
- 9588 .LFE164:
- 9590 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
- 9591 .align 1
- 9592 .global HAL_I2C_ER_IRQHandler
- 9593 .syntax unified
- 9594 .thumb
- 9595 .thumb_func
- 9597 HAL_I2C_ER_IRQHandler:
- 9598 .LFB165:
- 4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
- 4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
- 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9599 .loc 1 4658 1
- 9600 .cfi_startproc
- 9601 @ args = 0, pretend = 0, frame = 24
- 9602 @ frame_needed = 1, uses_anonymous_args = 0
- 9603 0000 80B5 push {r7, lr}
- 9604 .LCFI177:
- 9605 .cfi_def_cfa_offset 8
- 9606 .cfi_offset 7, -8
- 9607 .cfi_offset 14, -4
- 9608 0002 86B0 sub sp, sp, #24
- 9609 .LCFI178:
- 9610 .cfi_def_cfa_offset 32
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 252
- 9611 0004 00AF add r7, sp, #0
- 9612 .LCFI179:
- 9613 .cfi_def_cfa_register 7
- 9614 0006 7860 str r0, [r7, #4]
- 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
- 9615 .loc 1 4659 24
- 9616 0008 7B68 ldr r3, [r7, #4]
- 9617 000a 1B68 ldr r3, [r3]
- 9618 .loc 1 4659 12
- 9619 000c 9B69 ldr r3, [r3, #24]
- 9620 000e 7B61 str r3, [r7, #20]
- 4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
- 9621 .loc 1 4660 24
- 9622 0010 7B68 ldr r3, [r7, #4]
- 9623 0012 1B68 ldr r3, [r3]
- 9624 .loc 1 4660 12
- 9625 0014 1B68 ldr r3, [r3]
- 9626 0016 3B61 str r3, [r7, #16]
- 4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
- 4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
- 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
- 9627 .loc 1 4664 8
- 9628 0018 7B69 ldr r3, [r7, #20]
- 9629 001a 1B0A lsrs r3, r3, #8
- 9630 001c 03F00103 and r3, r3, #1
- 9631 .loc 1 4664 6
- 9632 0020 002B cmp r3, #0
- 9633 0022 10D0 beq .L462
- 4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
- 9634 .loc 1 4665 8 discriminator 1
- 9635 0024 3B69 ldr r3, [r7, #16]
- 9636 0026 DB09 lsrs r3, r3, #7
- 9637 0028 03F00103 and r3, r3, #1
- 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
- 9638 .loc 1 4664 57 discriminator 1
- 9639 002c 002B cmp r3, #0
- 9640 002e 0AD0 beq .L462
- 4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
- 9641 .loc 1 4667 21
- 9642 0030 7B68 ldr r3, [r7, #4]
- 9643 0032 5B6C ldr r3, [r3, #68]
- 9644 0034 43F00102 orr r2, r3, #1
- 9645 0038 7B68 ldr r3, [r7, #4]
- 9646 003a 5A64 str r2, [r3, #68]
- 4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
- 4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
- 9647 .loc 1 4670 5
- 9648 003c 7B68 ldr r3, [r7, #4]
- 9649 003e 1B68 ldr r3, [r3]
- 9650 0040 4FF48072 mov r2, #256
- 9651 0044 DA61 str r2, [r3, #28]
- 9652 .L462:
- 4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 253
- 4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
- 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
- 9653 .loc 1 4674 8
- 9654 0046 7B69 ldr r3, [r7, #20]
- 9655 0048 9B0A lsrs r3, r3, #10
- 9656 004a 03F00103 and r3, r3, #1
- 9657 .loc 1 4674 6
- 9658 004e 002B cmp r3, #0
- 9659 0050 10D0 beq .L463
- 4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
- 9660 .loc 1 4675 8 discriminator 1
- 9661 0052 3B69 ldr r3, [r7, #16]
- 9662 0054 DB09 lsrs r3, r3, #7
- 9663 0056 03F00103 and r3, r3, #1
- 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
- 9664 .loc 1 4674 56 discriminator 1
- 9665 005a 002B cmp r3, #0
- 9666 005c 0AD0 beq .L463
- 4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
- 9667 .loc 1 4677 21
- 9668 005e 7B68 ldr r3, [r7, #4]
- 9669 0060 5B6C ldr r3, [r3, #68]
- 9670 0062 43F00802 orr r2, r3, #8
- 9671 0066 7B68 ldr r3, [r7, #4]
- 9672 0068 5A64 str r2, [r3, #68]
- 4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
- 4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
- 9673 .loc 1 4680 5
- 9674 006a 7B68 ldr r3, [r7, #4]
- 9675 006c 1B68 ldr r3, [r3]
- 9676 006e 4FF48062 mov r2, #1024
- 9677 0072 DA61 str r2, [r3, #28]
- 9678 .L463:
- 4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
- 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
- 9679 .loc 1 4684 8
- 9680 0074 7B69 ldr r3, [r7, #20]
- 9681 0076 5B0A lsrs r3, r3, #9
- 9682 0078 03F00103 and r3, r3, #1
- 9683 .loc 1 4684 6
- 9684 007c 002B cmp r3, #0
- 9685 007e 10D0 beq .L464
- 4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
- 9686 .loc 1 4685 8 discriminator 1
- 9687 0080 3B69 ldr r3, [r7, #16]
- 9688 0082 DB09 lsrs r3, r3, #7
- 9689 0084 03F00103 and r3, r3, #1
- 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
- 9690 .loc 1 4684 57 discriminator 1
- 9691 0088 002B cmp r3, #0
- 9692 008a 0AD0 beq .L464
- 4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 254
- 9693 .loc 1 4687 21
- 9694 008c 7B68 ldr r3, [r7, #4]
- 9695 008e 5B6C ldr r3, [r3, #68]
- 9696 0090 43F00202 orr r2, r3, #2
- 9697 0094 7B68 ldr r3, [r7, #4]
- 9698 0096 5A64 str r2, [r3, #68]
- 4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
- 4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
- 9699 .loc 1 4690 5
- 9700 0098 7B68 ldr r3, [r7, #4]
- 9701 009a 1B68 ldr r3, [r3]
- 9702 009c 4FF40072 mov r2, #512
- 9703 00a0 DA61 str r2, [r3, #28]
- 9704 .L464:
- 4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
- 4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
- 9705 .loc 1 4694 12
- 9706 00a2 7B68 ldr r3, [r7, #4]
- 9707 00a4 5B6C ldr r3, [r3, #68]
- 9708 00a6 FB60 str r3, [r7, #12]
- 4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
- 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_
- 9709 .loc 1 4697 17
- 9710 00a8 FB68 ldr r3, [r7, #12]
- 9711 00aa 03F00B03 and r3, r3, #11
- 9712 .loc 1 4697 6
- 9713 00ae 002B cmp r3, #0
- 9714 00b0 03D0 beq .L466
- 4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
- 9715 .loc 1 4699 5
- 9716 00b2 F968 ldr r1, [r7, #12]
- 9717 00b4 7868 ldr r0, [r7, #4]
- 9718 00b6 FFF7FEFF bl I2C_ITError
- 9719 .L466:
- 4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9720 .loc 1 4701 1
- 9721 00ba 00BF nop
- 9722 00bc 1837 adds r7, r7, #24
- 9723 .LCFI180:
- 9724 .cfi_def_cfa_offset 8
- 9725 00be BD46 mov sp, r7
- 9726 .LCFI181:
- 9727 .cfi_def_cfa_register 13
- 9728 @ sp needed
- 9729 00c0 80BD pop {r7, pc}
- 9730 .cfi_endproc
- 9731 .LFE165:
- 9733 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
- 9734 .align 1
- 9735 .weak HAL_I2C_MasterTxCpltCallback
- 9736 .syntax unified
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 255
- 9737 .thumb
- 9738 .thumb_func
- 9740 HAL_I2C_MasterTxCpltCallback:
- 9741 .LFB166:
- 4702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
- 4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
- 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9742 .loc 1 4710 1
- 9743 .cfi_startproc
- 9744 @ args = 0, pretend = 0, frame = 8
- 9745 @ frame_needed = 1, uses_anonymous_args = 0
- 9746 @ link register save eliminated.
- 9747 0000 80B4 push {r7}
- 9748 .LCFI182:
- 9749 .cfi_def_cfa_offset 4
- 9750 .cfi_offset 7, -4
- 9751 0002 83B0 sub sp, sp, #12
- 9752 .LCFI183:
- 9753 .cfi_def_cfa_offset 16
- 9754 0004 00AF add r7, sp, #0
- 9755 .LCFI184:
- 9756 .cfi_def_cfa_register 7
- 9757 0006 7860 str r0, [r7, #4]
- 4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
- 4716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9758 .loc 1 4717 1
- 9759 0008 00BF nop
- 9760 000a 0C37 adds r7, r7, #12
- 9761 .LCFI185:
- 9762 .cfi_def_cfa_offset 4
- 9763 000c BD46 mov sp, r7
- 9764 .LCFI186:
- 9765 .cfi_def_cfa_register 13
- 9766 @ sp needed
- 9767 000e 5DF8047B ldr r7, [sp], #4
- 9768 .LCFI187:
- 9769 .cfi_restore 7
- 9770 .cfi_def_cfa_offset 0
- 9771 0012 7047 bx lr
- 9772 .cfi_endproc
- 9773 .LFE166:
- 9775 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
- 9776 .align 1
- 9777 .weak HAL_I2C_MasterRxCpltCallback
- 9778 .syntax unified
- 9779 .thumb
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 256
- 9780 .thumb_func
- 9782 HAL_I2C_MasterRxCpltCallback:
- 9783 .LFB167:
- 4718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
- 4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
- 4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9784 .loc 1 4726 1
- 9785 .cfi_startproc
- 9786 @ args = 0, pretend = 0, frame = 8
- 9787 @ frame_needed = 1, uses_anonymous_args = 0
- 9788 @ link register save eliminated.
- 9789 0000 80B4 push {r7}
- 9790 .LCFI188:
- 9791 .cfi_def_cfa_offset 4
- 9792 .cfi_offset 7, -4
- 9793 0002 83B0 sub sp, sp, #12
- 9794 .LCFI189:
- 9795 .cfi_def_cfa_offset 16
- 9796 0004 00AF add r7, sp, #0
- 9797 .LCFI190:
- 9798 .cfi_def_cfa_register 7
- 9799 0006 7860 str r0, [r7, #4]
- 4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
- 4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9800 .loc 1 4733 1
- 9801 0008 00BF nop
- 9802 000a 0C37 adds r7, r7, #12
- 9803 .LCFI191:
- 9804 .cfi_def_cfa_offset 4
- 9805 000c BD46 mov sp, r7
- 9806 .LCFI192:
- 9807 .cfi_def_cfa_register 13
- 9808 @ sp needed
- 9809 000e 5DF8047B ldr r7, [sp], #4
- 9810 .LCFI193:
- 9811 .cfi_restore 7
- 9812 .cfi_def_cfa_offset 0
- 9813 0012 7047 bx lr
- 9814 .cfi_endproc
- 9815 .LFE167:
- 9817 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
- 9818 .align 1
- 9819 .weak HAL_I2C_SlaveTxCpltCallback
- 9820 .syntax unified
- 9821 .thumb
- 9822 .thumb_func
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 257
- 9824 HAL_I2C_SlaveTxCpltCallback:
- 9825 .LFB168:
- 4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
- 4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
- 4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9826 .loc 1 4741 1
- 9827 .cfi_startproc
- 9828 @ args = 0, pretend = 0, frame = 8
- 9829 @ frame_needed = 1, uses_anonymous_args = 0
- 9830 @ link register save eliminated.
- 9831 0000 80B4 push {r7}
- 9832 .LCFI194:
- 9833 .cfi_def_cfa_offset 4
- 9834 .cfi_offset 7, -4
- 9835 0002 83B0 sub sp, sp, #12
- 9836 .LCFI195:
- 9837 .cfi_def_cfa_offset 16
- 9838 0004 00AF add r7, sp, #0
- 9839 .LCFI196:
- 9840 .cfi_def_cfa_register 7
- 9841 0006 7860 str r0, [r7, #4]
- 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
- 4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9842 .loc 1 4748 1
- 9843 0008 00BF nop
- 9844 000a 0C37 adds r7, r7, #12
- 9845 .LCFI197:
- 9846 .cfi_def_cfa_offset 4
- 9847 000c BD46 mov sp, r7
- 9848 .LCFI198:
- 9849 .cfi_def_cfa_register 13
- 9850 @ sp needed
- 9851 000e 5DF8047B ldr r7, [sp], #4
- 9852 .LCFI199:
- 9853 .cfi_restore 7
- 9854 .cfi_def_cfa_offset 0
- 9855 0012 7047 bx lr
- 9856 .cfi_endproc
- 9857 .LFE168:
- 9859 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
- 9860 .align 1
- 9861 .weak HAL_I2C_SlaveRxCpltCallback
- 9862 .syntax unified
- 9863 .thumb
- 9864 .thumb_func
- 9866 HAL_I2C_SlaveRxCpltCallback:
- 9867 .LFB169:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 258
- 4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
- 4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
- 4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9868 .loc 1 4757 1
- 9869 .cfi_startproc
- 9870 @ args = 0, pretend = 0, frame = 8
- 9871 @ frame_needed = 1, uses_anonymous_args = 0
- 9872 @ link register save eliminated.
- 9873 0000 80B4 push {r7}
- 9874 .LCFI200:
- 9875 .cfi_def_cfa_offset 4
- 9876 .cfi_offset 7, -4
- 9877 0002 83B0 sub sp, sp, #12
- 9878 .LCFI201:
- 9879 .cfi_def_cfa_offset 16
- 9880 0004 00AF add r7, sp, #0
- 9881 .LCFI202:
- 9882 .cfi_def_cfa_register 7
- 9883 0006 7860 str r0, [r7, #4]
- 4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
- 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9884 .loc 1 4764 1
- 9885 0008 00BF nop
- 9886 000a 0C37 adds r7, r7, #12
- 9887 .LCFI203:
- 9888 .cfi_def_cfa_offset 4
- 9889 000c BD46 mov sp, r7
- 9890 .LCFI204:
- 9891 .cfi_def_cfa_register 13
- 9892 @ sp needed
- 9893 000e 5DF8047B ldr r7, [sp], #4
- 9894 .LCFI205:
- 9895 .cfi_restore 7
- 9896 .cfi_def_cfa_offset 0
- 9897 0012 7047 bx lr
- 9898 .cfi_endproc
- 9899 .LFE169:
- 9901 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
- 9902 .align 1
- 9903 .weak HAL_I2C_AddrCallback
- 9904 .syntax unified
- 9905 .thumb
- 9906 .thumb_func
- 9908 HAL_I2C_AddrCallback:
- 9909 .LFB170:
- 4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 259
- 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback.
- 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
- 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
- 4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
- 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9910 .loc 1 4775 1
- 9911 .cfi_startproc
- 9912 @ args = 0, pretend = 0, frame = 8
- 9913 @ frame_needed = 1, uses_anonymous_args = 0
- 9914 @ link register save eliminated.
- 9915 0000 80B4 push {r7}
- 9916 .LCFI206:
- 9917 .cfi_def_cfa_offset 4
- 9918 .cfi_offset 7, -4
- 9919 0002 83B0 sub sp, sp, #12
- 9920 .LCFI207:
- 9921 .cfi_def_cfa_offset 16
- 9922 0004 00AF add r7, sp, #0
- 9923 .LCFI208:
- 9924 .cfi_def_cfa_register 7
- 9925 0006 7860 str r0, [r7, #4]
- 9926 0008 0B46 mov r3, r1
- 9927 000a FB70 strb r3, [r7, #3]
- 9928 000c 1346 mov r3, r2 @ movhi
- 9929 000e 3B80 strh r3, [r7] @ movhi
- 4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
- 4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
- 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
- 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9930 .loc 1 4784 1
- 9931 0010 00BF nop
- 9932 0012 0C37 adds r7, r7, #12
- 9933 .LCFI209:
- 9934 .cfi_def_cfa_offset 4
- 9935 0014 BD46 mov sp, r7
- 9936 .LCFI210:
- 9937 .cfi_def_cfa_register 13
- 9938 @ sp needed
- 9939 0016 5DF8047B ldr r7, [sp], #4
- 9940 .LCFI211:
- 9941 .cfi_restore 7
- 9942 .cfi_def_cfa_offset 0
- 9943 001a 7047 bx lr
- 9944 .cfi_endproc
- 9945 .LFE170:
- 9947 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
- 9948 .align 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 260
- 9949 .weak HAL_I2C_ListenCpltCallback
- 9950 .syntax unified
- 9951 .thumb
- 9952 .thumb_func
- 9954 HAL_I2C_ListenCpltCallback:
- 9955 .LFB171:
- 4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback.
- 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
- 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9956 .loc 1 4793 1
- 9957 .cfi_startproc
- 9958 @ args = 0, pretend = 0, frame = 8
- 9959 @ frame_needed = 1, uses_anonymous_args = 0
- 9960 @ link register save eliminated.
- 9961 0000 80B4 push {r7}
- 9962 .LCFI212:
- 9963 .cfi_def_cfa_offset 4
- 9964 .cfi_offset 7, -4
- 9965 0002 83B0 sub sp, sp, #12
- 9966 .LCFI213:
- 9967 .cfi_def_cfa_offset 16
- 9968 0004 00AF add r7, sp, #0
- 9969 .LCFI214:
- 9970 .cfi_def_cfa_register 7
- 9971 0006 7860 str r0, [r7, #4]
- 4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
- 4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 9972 .loc 1 4800 1
- 9973 0008 00BF nop
- 9974 000a 0C37 adds r7, r7, #12
- 9975 .LCFI215:
- 9976 .cfi_def_cfa_offset 4
- 9977 000c BD46 mov sp, r7
- 9978 .LCFI216:
- 9979 .cfi_def_cfa_register 13
- 9980 @ sp needed
- 9981 000e 5DF8047B ldr r7, [sp], #4
- 9982 .LCFI217:
- 9983 .cfi_restore 7
- 9984 .cfi_def_cfa_offset 0
- 9985 0012 7047 bx lr
- 9986 .cfi_endproc
- 9987 .LFE171:
- 9989 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
- 9990 .align 1
- 9991 .weak HAL_I2C_MemTxCpltCallback
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 261
- 9992 .syntax unified
- 9993 .thumb
- 9994 .thumb_func
- 9996 HAL_I2C_MemTxCpltCallback:
- 9997 .LFB172:
- 4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
- 4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
- 4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 9998 .loc 1 4809 1
- 9999 .cfi_startproc
- 10000 @ args = 0, pretend = 0, frame = 8
- 10001 @ frame_needed = 1, uses_anonymous_args = 0
- 10002 @ link register save eliminated.
- 10003 0000 80B4 push {r7}
- 10004 .LCFI218:
- 10005 .cfi_def_cfa_offset 4
- 10006 .cfi_offset 7, -4
- 10007 0002 83B0 sub sp, sp, #12
- 10008 .LCFI219:
- 10009 .cfi_def_cfa_offset 16
- 10010 0004 00AF add r7, sp, #0
- 10011 .LCFI220:
- 10012 .cfi_def_cfa_register 7
- 10013 0006 7860 str r0, [r7, #4]
- 4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
- 4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10014 .loc 1 4816 1
- 10015 0008 00BF nop
- 10016 000a 0C37 adds r7, r7, #12
- 10017 .LCFI221:
- 10018 .cfi_def_cfa_offset 4
- 10019 000c BD46 mov sp, r7
- 10020 .LCFI222:
- 10021 .cfi_def_cfa_register 13
- 10022 @ sp needed
- 10023 000e 5DF8047B ldr r7, [sp], #4
- 10024 .LCFI223:
- 10025 .cfi_restore 7
- 10026 .cfi_def_cfa_offset 0
- 10027 0012 7047 bx lr
- 10028 .cfi_endproc
- 10029 .LFE172:
- 10031 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
- 10032 .align 1
- 10033 .weak HAL_I2C_MemRxCpltCallback
- 10034 .syntax unified
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 262
- 10035 .thumb
- 10036 .thumb_func
- 10038 HAL_I2C_MemRxCpltCallback:
- 10039 .LFB173:
- 4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
- 4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
- 4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10040 .loc 1 4825 1
- 10041 .cfi_startproc
- 10042 @ args = 0, pretend = 0, frame = 8
- 10043 @ frame_needed = 1, uses_anonymous_args = 0
- 10044 @ link register save eliminated.
- 10045 0000 80B4 push {r7}
- 10046 .LCFI224:
- 10047 .cfi_def_cfa_offset 4
- 10048 .cfi_offset 7, -4
- 10049 0002 83B0 sub sp, sp, #12
- 10050 .LCFI225:
- 10051 .cfi_def_cfa_offset 16
- 10052 0004 00AF add r7, sp, #0
- 10053 .LCFI226:
- 10054 .cfi_def_cfa_register 7
- 10055 0006 7860 str r0, [r7, #4]
- 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
- 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10056 .loc 1 4832 1
- 10057 0008 00BF nop
- 10058 000a 0C37 adds r7, r7, #12
- 10059 .LCFI227:
- 10060 .cfi_def_cfa_offset 4
- 10061 000c BD46 mov sp, r7
- 10062 .LCFI228:
- 10063 .cfi_def_cfa_register 13
- 10064 @ sp needed
- 10065 000e 5DF8047B ldr r7, [sp], #4
- 10066 .LCFI229:
- 10067 .cfi_restore 7
- 10068 .cfi_def_cfa_offset 0
- 10069 0012 7047 bx lr
- 10070 .cfi_endproc
- 10071 .LFE173:
- 10073 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
- 10074 .align 1
- 10075 .weak HAL_I2C_ErrorCallback
- 10076 .syntax unified
- 10077 .thumb
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 263
- 10078 .thumb_func
- 10080 HAL_I2C_ErrorCallback:
- 10081 .LFB174:
- 4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback.
- 4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
- 4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10082 .loc 1 4841 1
- 10083 .cfi_startproc
- 10084 @ args = 0, pretend = 0, frame = 8
- 10085 @ frame_needed = 1, uses_anonymous_args = 0
- 10086 @ link register save eliminated.
- 10087 0000 80B4 push {r7}
- 10088 .LCFI230:
- 10089 .cfi_def_cfa_offset 4
- 10090 .cfi_offset 7, -4
- 10091 0002 83B0 sub sp, sp, #12
- 10092 .LCFI231:
- 10093 .cfi_def_cfa_offset 16
- 10094 0004 00AF add r7, sp, #0
- 10095 .LCFI232:
- 10096 .cfi_def_cfa_register 7
- 10097 0006 7860 str r0, [r7, #4]
- 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
- 4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10098 .loc 1 4848 1
- 10099 0008 00BF nop
- 10100 000a 0C37 adds r7, r7, #12
- 10101 .LCFI233:
- 10102 .cfi_def_cfa_offset 4
- 10103 000c BD46 mov sp, r7
- 10104 .LCFI234:
- 10105 .cfi_def_cfa_register 13
- 10106 @ sp needed
- 10107 000e 5DF8047B ldr r7, [sp], #4
- 10108 .LCFI235:
- 10109 .cfi_restore 7
- 10110 .cfi_def_cfa_offset 0
- 10111 0012 7047 bx lr
- 10112 .cfi_endproc
- 10113 .LFE174:
- 10115 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
- 10116 .align 1
- 10117 .weak HAL_I2C_AbortCpltCallback
- 10118 .syntax unified
- 10119 .thumb
- 10120 .thumb_func
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 264
- 10122 HAL_I2C_AbortCpltCallback:
- 10123 .LFB175:
- 4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback.
- 4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
- 4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10124 .loc 1 4857 1
- 10125 .cfi_startproc
- 10126 @ args = 0, pretend = 0, frame = 8
- 10127 @ frame_needed = 1, uses_anonymous_args = 0
- 10128 @ link register save eliminated.
- 10129 0000 80B4 push {r7}
- 10130 .LCFI236:
- 10131 .cfi_def_cfa_offset 4
- 10132 .cfi_offset 7, -4
- 10133 0002 83B0 sub sp, sp, #12
- 10134 .LCFI237:
- 10135 .cfi_def_cfa_offset 16
- 10136 0004 00AF add r7, sp, #0
- 10137 .LCFI238:
- 10138 .cfi_def_cfa_register 7
- 10139 0006 7860 str r0, [r7, #4]
- 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
- 4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
- 4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
- 4863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10140 .loc 1 4864 1
- 10141 0008 00BF nop
- 10142 000a 0C37 adds r7, r7, #12
- 10143 .LCFI239:
- 10144 .cfi_def_cfa_offset 4
- 10145 000c BD46 mov sp, r7
- 10146 .LCFI240:
- 10147 .cfi_def_cfa_register 13
- 10148 @ sp needed
- 10149 000e 5DF8047B ldr r7, [sp], #4
- 10150 .LCFI241:
- 10151 .cfi_restore 7
- 10152 .cfi_def_cfa_offset 0
- 10153 0012 7047 bx lr
- 10154 .cfi_endproc
- 10155 .LFE175:
- 10157 .section .text.HAL_I2C_GetState,"ax",%progbits
- 10158 .align 1
- 10159 .global HAL_I2C_GetState
- 10160 .syntax unified
- 10161 .thumb
- 10162 .thumb_func
- 10164 HAL_I2C_GetState:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 265
- 10165 .LFB176:
- 4865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
- 4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
- 4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
- 4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
- 4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
- 4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
- 4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
- 4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
- 4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
- 4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow.
- 4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
- 4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state.
- 4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state
- 4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c)
- 4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10166 .loc 1 4892 1
- 10167 .cfi_startproc
- 10168 @ args = 0, pretend = 0, frame = 8
- 10169 @ frame_needed = 1, uses_anonymous_args = 0
- 10170 @ link register save eliminated.
- 10171 0000 80B4 push {r7}
- 10172 .LCFI242:
- 10173 .cfi_def_cfa_offset 4
- 10174 .cfi_offset 7, -4
- 10175 0002 83B0 sub sp, sp, #12
- 10176 .LCFI243:
- 10177 .cfi_def_cfa_offset 16
- 10178 0004 00AF add r7, sp, #0
- 10179 .LCFI244:
- 10180 .cfi_def_cfa_register 7
- 10181 0006 7860 str r0, [r7, #4]
- 4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
- 4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State;
- 10182 .loc 1 4894 14
- 10183 0008 7B68 ldr r3, [r7, #4]
- 10184 000a 93F84130 ldrb r3, [r3, #65]
- 10185 000e DBB2 uxtb r3, r3
- 4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10186 .loc 1 4895 1
- 10187 0010 1846 mov r0, r3
- 10188 0012 0C37 adds r7, r7, #12
- 10189 .LCFI245:
- 10190 .cfi_def_cfa_offset 4
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 266
- 10191 0014 BD46 mov sp, r7
- 10192 .LCFI246:
- 10193 .cfi_def_cfa_register 13
- 10194 @ sp needed
- 10195 0016 5DF8047B ldr r7, [sp], #4
- 10196 .LCFI247:
- 10197 .cfi_restore 7
- 10198 .cfi_def_cfa_offset 0
- 10199 001a 7047 bx lr
- 10200 .cfi_endproc
- 10201 .LFE176:
- 10203 .section .text.HAL_I2C_GetMode,"ax",%progbits
- 10204 .align 1
- 10205 .global HAL_I2C_GetMode
- 10206 .syntax unified
- 10207 .thumb
- 10208 .thumb_func
- 10210 HAL_I2C_GetMode:
- 10211 .LFB177:
- 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
- 4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module
- 4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode
- 4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c)
- 4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10212 .loc 1 4904 1
- 10213 .cfi_startproc
- 10214 @ args = 0, pretend = 0, frame = 8
- 10215 @ frame_needed = 1, uses_anonymous_args = 0
- 10216 @ link register save eliminated.
- 10217 0000 80B4 push {r7}
- 10218 .LCFI248:
- 10219 .cfi_def_cfa_offset 4
- 10220 .cfi_offset 7, -4
- 10221 0002 83B0 sub sp, sp, #12
- 10222 .LCFI249:
- 10223 .cfi_def_cfa_offset 16
- 10224 0004 00AF add r7, sp, #0
- 10225 .LCFI250:
- 10226 .cfi_def_cfa_register 7
- 10227 0006 7860 str r0, [r7, #4]
- 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
- 10228 .loc 1 4905 14
- 10229 0008 7B68 ldr r3, [r7, #4]
- 10230 000a 93F84230 ldrb r3, [r3, #66]
- 10231 000e DBB2 uxtb r3, r3
- 4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10232 .loc 1 4906 1
- 10233 0010 1846 mov r0, r3
- 10234 0012 0C37 adds r7, r7, #12
- 10235 .LCFI251:
- 10236 .cfi_def_cfa_offset 4
- 10237 0014 BD46 mov sp, r7
- 10238 .LCFI252:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 267
- 10239 .cfi_def_cfa_register 13
- 10240 @ sp needed
- 10241 0016 5DF8047B ldr r7, [sp], #4
- 10242 .LCFI253:
- 10243 .cfi_restore 7
- 10244 .cfi_def_cfa_offset 0
- 10245 001a 7047 bx lr
- 10246 .cfi_endproc
- 10247 .LFE177:
- 10249 .section .text.HAL_I2C_GetError,"ax",%progbits
- 10250 .align 1
- 10251 .global HAL_I2C_GetError
- 10252 .syntax unified
- 10253 .thumb
- 10254 .thumb_func
- 10256 HAL_I2C_GetError:
- 10257 .LFB178:
- 4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code.
- 4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code
- 4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c)
- 4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10258 .loc 1 4915 1
- 10259 .cfi_startproc
- 10260 @ args = 0, pretend = 0, frame = 8
- 10261 @ frame_needed = 1, uses_anonymous_args = 0
- 10262 @ link register save eliminated.
- 10263 0000 80B4 push {r7}
- 10264 .LCFI254:
- 10265 .cfi_def_cfa_offset 4
- 10266 .cfi_offset 7, -4
- 10267 0002 83B0 sub sp, sp, #12
- 10268 .LCFI255:
- 10269 .cfi_def_cfa_offset 16
- 10270 0004 00AF add r7, sp, #0
- 10271 .LCFI256:
- 10272 .cfi_def_cfa_register 7
- 10273 0006 7860 str r0, [r7, #4]
- 4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
- 10274 .loc 1 4916 14
- 10275 0008 7B68 ldr r3, [r7, #4]
- 10276 000a 5B6C ldr r3, [r3, #68]
- 4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10277 .loc 1 4917 1
- 10278 000c 1846 mov r0, r3
- 10279 000e 0C37 adds r7, r7, #12
- 10280 .LCFI257:
- 10281 .cfi_def_cfa_offset 4
- 10282 0010 BD46 mov sp, r7
- 10283 .LCFI258:
- 10284 .cfi_def_cfa_register 13
- 10285 @ sp needed
- 10286 0012 5DF8047B ldr r7, [sp], #4
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 268
- 10287 .LCFI259:
- 10288 .cfi_restore 7
- 10289 .cfi_def_cfa_offset 0
- 10290 0016 7047 bx lr
- 10291 .cfi_endproc
- 10292 .LFE178:
- 10294 .section .text.I2C_Master_ISR_IT,"ax",%progbits
- 10295 .align 1
- 10296 .syntax unified
- 10297 .thumb
- 10298 .thumb_func
- 10300 I2C_Master_ISR_IT:
- 10301 .LFB179:
- 4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
- 4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
- 4928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
- 4929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
- 4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
- 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
- 4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10302 .loc 1 4941 1
- 10303 .cfi_startproc
- 10304 @ args = 0, pretend = 0, frame = 24
- 10305 @ frame_needed = 1, uses_anonymous_args = 0
- 10306 0000 80B5 push {r7, lr}
- 10307 .LCFI260:
- 10308 .cfi_def_cfa_offset 8
- 10309 .cfi_offset 7, -8
- 10310 .cfi_offset 14, -4
- 10311 0002 88B0 sub sp, sp, #32
- 10312 .LCFI261:
- 10313 .cfi_def_cfa_offset 40
- 10314 0004 02AF add r7, sp, #8
- 10315 .LCFI262:
- 10316 .cfi_def_cfa 7, 32
- 10317 0006 F860 str r0, [r7, #12]
- 10318 0008 B960 str r1, [r7, #8]
- 10319 000a 7A60 str r2, [r7, #4]
- 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
- 4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 269
- 10320 .loc 1 4943 12
- 10321 000c BB68 ldr r3, [r7, #8]
- 10322 000e 7B61 str r3, [r7, #20]
- 4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 10323 .loc 1 4946 3
- 10324 0010 FB68 ldr r3, [r7, #12]
- 10325 0012 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 10326 0016 012B cmp r3, #1
- 10327 0018 01D1 bne .L484
- 10328 .loc 1 4946 3 is_stmt 0 discriminator 1
- 10329 001a 0223 movs r3, #2
- 10330 001c 2EE1 b .L485
- 10331 .L484:
- 10332 .loc 1 4946 3 discriminator 2
- 10333 001e FB68 ldr r3, [r7, #12]
- 10334 0020 0122 movs r2, #1
- 10335 0022 83F84020 strb r2, [r3, #64]
- 4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
- 10336 .loc 1 4948 8 is_stmt 1 discriminator 2
- 10337 0026 7B69 ldr r3, [r7, #20]
- 10338 0028 1B09 lsrs r3, r3, #4
- 10339 002a 03F00103 and r3, r3, #1
- 10340 .loc 1 4948 6 discriminator 2
- 10341 002e 002B cmp r3, #0
- 10342 0030 13D0 beq .L486
- 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 10343 .loc 1 4949 8 discriminator 1
- 10344 0032 7B68 ldr r3, [r7, #4]
- 10345 0034 1B09 lsrs r3, r3, #4
- 10346 0036 03F00103 and r3, r3, #1
- 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 10347 .loc 1 4948 58 discriminator 1
- 10348 003a 002B cmp r3, #0
- 10349 003c 0DD0 beq .L486
- 4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 10350 .loc 1 4952 5
- 10351 003e FB68 ldr r3, [r7, #12]
- 10352 0040 1B68 ldr r3, [r3]
- 10353 0042 1022 movs r2, #16
- 10354 0044 DA61 str r2, [r3, #28]
- 4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
- 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
- 4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
- 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 10355 .loc 1 4957 21
- 10356 0046 FB68 ldr r3, [r7, #12]
- 10357 0048 5B6C ldr r3, [r3, #68]
- 10358 004a 43F00402 orr r2, r3, #4
- 10359 004e FB68 ldr r3, [r7, #12]
- 10360 0050 5A64 str r2, [r3, #68]
- 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 270
- 4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 10361 .loc 1 4960 5
- 10362 0052 F868 ldr r0, [r7, #12]
- 10363 0054 FFF7FEFF bl I2C_Flush_TXDR
- 10364 0058 FBE0 b .L487
- 10365 .L486:
- 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
- 10366 .loc 1 4962 13
- 10367 005a 7B69 ldr r3, [r7, #20]
- 10368 005c 9B08 lsrs r3, r3, #2
- 10369 005e 03F00103 and r3, r3, #1
- 10370 .loc 1 4962 11
- 10371 0062 002B cmp r3, #0
- 10372 0064 23D0 beq .L488
- 4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
- 10373 .loc 1 4963 13 discriminator 1
- 10374 0066 7B68 ldr r3, [r7, #4]
- 10375 0068 9B08 lsrs r3, r3, #2
- 10376 006a 03F00103 and r3, r3, #1
- 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
- 10377 .loc 1 4962 65 discriminator 1
- 10378 006e 002B cmp r3, #0
- 10379 0070 1DD0 beq .L488
- 4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
- 4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
- 10380 .loc 1 4966 16
- 10381 0072 7B69 ldr r3, [r7, #20]
- 10382 0074 23F00403 bic r3, r3, #4
- 10383 0078 7B61 str r3, [r7, #20]
- 4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 10384 .loc 1 4969 36
- 10385 007a FB68 ldr r3, [r7, #12]
- 10386 007c 1B68 ldr r3, [r3]
- 10387 .loc 1 4969 46
- 10388 007e 5A6A ldr r2, [r3, #36]
- 10389 .loc 1 4969 10
- 10390 0080 FB68 ldr r3, [r7, #12]
- 10391 0082 5B6A ldr r3, [r3, #36]
- 10392 .loc 1 4969 23
- 10393 0084 D2B2 uxtb r2, r2
- 10394 .loc 1 4969 21
- 10395 0086 1A70 strb r2, [r3]
- 4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 10396 .loc 1 4972 9
- 10397 0088 FB68 ldr r3, [r7, #12]
- 10398 008a 5B6A ldr r3, [r3, #36]
- 10399 .loc 1 4972 19
- 10400 008c 5A1C adds r2, r3, #1
- 10401 008e FB68 ldr r3, [r7, #12]
- 10402 0090 5A62 str r2, [r3, #36]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 271
- 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 10403 .loc 1 4974 9
- 10404 0092 FB68 ldr r3, [r7, #12]
- 10405 0094 1B8D ldrh r3, [r3, #40]
- 10406 .loc 1 4974 19
- 10407 0096 013B subs r3, r3, #1
- 10408 0098 9AB2 uxth r2, r3
- 10409 009a FB68 ldr r3, [r7, #12]
- 10410 009c 1A85 strh r2, [r3, #40] @ movhi
- 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 10411 .loc 1 4975 9
- 10412 009e FB68 ldr r3, [r7, #12]
- 10413 00a0 5B8D ldrh r3, [r3, #42] @ movhi
- 10414 00a2 9BB2 uxth r3, r3
- 10415 .loc 1 4975 20
- 10416 00a4 013B subs r3, r3, #1
- 10417 00a6 9AB2 uxth r2, r3
- 10418 00a8 FB68 ldr r3, [r7, #12]
- 10419 00aa 5A85 strh r2, [r3, #42] @ movhi
- 10420 00ac D1E0 b .L487
- 10421 .L488:
- 4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \
- 10422 .loc 1 4977 13
- 10423 00ae 7B69 ldr r3, [r7, #20]
- 10424 00b0 9B09 lsrs r3, r3, #6
- 10425 00b2 03F00103 and r3, r3, #1
- 10426 .loc 1 4977 11
- 10427 00b6 002B cmp r3, #0
- 10428 00b8 2AD1 bne .L489
- 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
- 10429 .loc 1 4978 14 discriminator 1
- 10430 00ba 7B69 ldr r3, [r7, #20]
- 10431 00bc 5B08 lsrs r3, r3, #1
- 10432 00be 03F00103 and r3, r3, #1
- 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
- 10433 .loc 1 4977 63 discriminator 1
- 10434 00c2 002B cmp r3, #0
- 10435 00c4 24D0 beq .L489
- 4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
- 10436 .loc 1 4979 14
- 10437 00c6 7B68 ldr r3, [r7, #4]
- 10438 00c8 5B08 lsrs r3, r3, #1
- 10439 00ca 03F00103 and r3, r3, #1
- 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
- 10440 .loc 1 4978 66
- 10441 00ce 002B cmp r3, #0
- 10442 00d0 1ED0 beq .L489
- 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
- 10443 .loc 1 4982 13
- 10444 00d2 FB68 ldr r3, [r7, #12]
- 10445 00d4 5B8D ldrh r3, [r3, #42] @ movhi
- 10446 00d6 9BB2 uxth r3, r3
- 10447 .loc 1 4982 8
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 272
- 10448 00d8 002B cmp r3, #0
- 10449 00da 00F0BA80 beq .L487
- 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 10450 .loc 1 4985 35
- 10451 00de FB68 ldr r3, [r7, #12]
- 10452 00e0 5B6A ldr r3, [r3, #36]
- 10453 .loc 1 4985 30
- 10454 00e2 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 10455 .loc 1 4985 11
- 10456 00e4 FB68 ldr r3, [r7, #12]
- 10457 00e6 1B68 ldr r3, [r3]
- 10458 .loc 1 4985 28
- 10459 00e8 9A62 str r2, [r3, #40]
- 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 10460 .loc 1 4988 11
- 10461 00ea FB68 ldr r3, [r7, #12]
- 10462 00ec 5B6A ldr r3, [r3, #36]
- 10463 .loc 1 4988 21
- 10464 00ee 5A1C adds r2, r3, #1
- 10465 00f0 FB68 ldr r3, [r7, #12]
- 10466 00f2 5A62 str r2, [r3, #36]
- 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 10467 .loc 1 4990 11
- 10468 00f4 FB68 ldr r3, [r7, #12]
- 10469 00f6 1B8D ldrh r3, [r3, #40]
- 10470 .loc 1 4990 21
- 10471 00f8 013B subs r3, r3, #1
- 10472 00fa 9AB2 uxth r2, r3
- 10473 00fc FB68 ldr r3, [r7, #12]
- 10474 00fe 1A85 strh r2, [r3, #40] @ movhi
- 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 10475 .loc 1 4991 11
- 10476 0100 FB68 ldr r3, [r7, #12]
- 10477 0102 5B8D ldrh r3, [r3, #42] @ movhi
- 10478 0104 9BB2 uxth r3, r3
- 10479 .loc 1 4991 22
- 10480 0106 013B subs r3, r3, #1
- 10481 0108 9AB2 uxth r2, r3
- 10482 010a FB68 ldr r3, [r7, #12]
- 10483 010c 5A85 strh r2, [r3, #42] @ movhi
- 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10484 .loc 1 4982 8
- 10485 010e A0E0 b .L487
- 10486 .L489:
- 4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
- 10487 .loc 1 4994 13
- 10488 0110 7B69 ldr r3, [r7, #20]
- 10489 0112 DB09 lsrs r3, r3, #7
- 10490 0114 03F00103 and r3, r3, #1
- 10491 .loc 1 4994 11
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 273
- 10492 0118 002B cmp r3, #0
- 10493 011a 6BD0 beq .L491
- 4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 10494 .loc 1 4995 13 discriminator 1
- 10495 011c 7B68 ldr r3, [r7, #4]
- 10496 011e 9B09 lsrs r3, r3, #6
- 10497 0120 03F00103 and r3, r3, #1
- 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 10498 .loc 1 4994 64 discriminator 1
- 10499 0124 002B cmp r3, #0
- 10500 0126 65D0 beq .L491
- 4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
- 10501 .loc 1 4997 14
- 10502 0128 FB68 ldr r3, [r7, #12]
- 10503 012a 5B8D ldrh r3, [r3, #42] @ movhi
- 10504 012c 9BB2 uxth r3, r3
- 10505 .loc 1 4997 8
- 10506 012e 002B cmp r3, #0
- 10507 0130 4ED0 beq .L492
- 10508 .loc 1 4997 41 discriminator 1
- 10509 0132 FB68 ldr r3, [r7, #12]
- 10510 0134 1B8D ldrh r3, [r3, #40]
- 10511 .loc 1 4997 33 discriminator 1
- 10512 0136 002B cmp r3, #0
- 10513 0138 4AD1 bne .L492
- 4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
- 10514 .loc 1 4999 35
- 10515 013a FB68 ldr r3, [r7, #12]
- 10516 013c 1B68 ldr r3, [r3]
- 10517 .loc 1 4999 45
- 10518 013e 5B68 ldr r3, [r3, #4]
- 10519 .loc 1 4999 20
- 10520 0140 9BB2 uxth r3, r3
- 10521 .loc 1 4999 18
- 10522 0142 C3F30903 ubfx r3, r3, #0, #10
- 10523 0146 7B82 strh r3, [r7, #18] @ movhi
- 5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 10524 .loc 1 5001 15
- 10525 0148 FB68 ldr r3, [r7, #12]
- 10526 014a 5B8D ldrh r3, [r3, #42] @ movhi
- 10527 014c 9BB2 uxth r3, r3
- 10528 .loc 1 5001 10
- 10529 014e FF2B cmp r3, #255
- 10530 0150 1CD9 bls .L493
- 5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 10531 .loc 1 5004 13
- 10532 0152 FB68 ldr r3, [r7, #12]
- 10533 0154 1B68 ldr r3, [r3]
- 10534 0156 9B69 ldr r3, [r3, #24]
- 10535 0158 1B0C lsrs r3, r3, #16
- 10536 015a DBB2 uxtb r3, r3
- 10537 015c 03F00103 and r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 274
- 10538 0160 DBB2 uxtb r3, r3
- 10539 .loc 1 5004 12
- 10540 0162 012B cmp r3, #1
- 10541 0164 03D1 bne .L494
- 5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 10542 .loc 1 5006 26
- 10543 0166 FB68 ldr r3, [r7, #12]
- 10544 0168 0122 movs r2, #1
- 10545 016a 1A85 strh r2, [r3, #40] @ movhi
- 10546 016c 02E0 b .L495
- 10547 .L494:
- 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 10548 .loc 1 5010 26
- 10549 016e FB68 ldr r3, [r7, #12]
- 10550 0170 FF22 movs r2, #255
- 10551 0172 1A85 strh r2, [r3, #40] @ movhi
- 10552 .L495:
- 5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
- 10553 .loc 1 5012 59
- 10554 0174 FB68 ldr r3, [r7, #12]
- 10555 0176 1B8D ldrh r3, [r3, #40]
- 10556 .loc 1 5012 9
- 10557 0178 DAB2 uxtb r2, r3
- 10558 017a 798A ldrh r1, [r7, #18]
- 10559 017c 0023 movs r3, #0
- 10560 017e 0093 str r3, [sp]
- 10561 0180 4FF08073 mov r3, #16777216
- 10562 0184 F868 ldr r0, [r7, #12]
- 10563 0186 FFF7FEFF bl I2C_TransferConfig
- 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10564 .loc 1 5001 10
- 10565 018a 32E0 b .L498
- 10566 .L493:
- 5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 10567 .loc 1 5016 30
- 10568 018c FB68 ldr r3, [r7, #12]
- 10569 018e 5B8D ldrh r3, [r3, #42] @ movhi
- 10570 0190 9AB2 uxth r2, r3
- 10571 .loc 1 5016 24
- 10572 0192 FB68 ldr r3, [r7, #12]
- 10573 0194 1A85 strh r2, [r3, #40] @ movhi
- 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
- 10574 .loc 1 5017 17
- 10575 0196 FB68 ldr r3, [r7, #12]
- 10576 0198 DB6A ldr r3, [r3, #44]
- 10577 .loc 1 5017 12
- 10578 019a 13F5803F cmn r3, #65536
- 10579 019e 0BD0 beq .L497
- 5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 275
- 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
- 10580 .loc 1 5019 61
- 10581 01a0 FB68 ldr r3, [r7, #12]
- 10582 01a2 1B8D ldrh r3, [r3, #40]
- 10583 .loc 1 5019 11
- 10584 01a4 DAB2 uxtb r2, r3
- 10585 01a6 FB68 ldr r3, [r7, #12]
- 10586 01a8 DB6A ldr r3, [r3, #44]
- 10587 01aa 798A ldrh r1, [r7, #18]
- 10588 01ac 0020 movs r0, #0
- 10589 01ae 0090 str r0, [sp]
- 10590 01b0 F868 ldr r0, [r7, #12]
- 10591 01b2 FFF7FEFF bl I2C_TransferConfig
- 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10592 .loc 1 5001 10
- 10593 01b6 1CE0 b .L498
- 10594 .L497:
- 5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
- 5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
- 10595 .loc 1 5024 61
- 10596 01b8 FB68 ldr r3, [r7, #12]
- 10597 01ba 1B8D ldrh r3, [r3, #40]
- 10598 .loc 1 5024 11
- 10599 01bc DAB2 uxtb r2, r3
- 10600 01be 798A ldrh r1, [r7, #18]
- 10601 01c0 0023 movs r3, #0
- 10602 01c2 0093 str r3, [sp]
- 10603 01c4 4FF00073 mov r3, #33554432
- 10604 01c8 F868 ldr r0, [r7, #12]
- 10605 01ca FFF7FEFF bl I2C_TransferConfig
- 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10606 .loc 1 5001 10
- 10607 01ce 10E0 b .L498
- 10608 .L492:
- 5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
- 5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
- 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
- 10609 .loc 1 5032 11
- 10610 01d0 FB68 ldr r3, [r7, #12]
- 10611 01d2 1B68 ldr r3, [r3]
- 10612 01d4 5B68 ldr r3, [r3, #4]
- 10613 01d6 03F00073 and r3, r3, #33554432
- 10614 .loc 1 5032 10
- 10615 01da B3F1007F cmp r3, #33554432
- 10616 01de 03D0 beq .L499
- 5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
- 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
- 10617 .loc 1 5035 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 276
- 10618 01e0 F868 ldr r0, [r7, #12]
- 10619 01e2 FFF7FEFF bl I2C_ITMasterSeqCplt
- 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10620 .loc 1 4997 8
- 10621 01e6 34E0 b .L487
- 10622 .L499:
- 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
- 5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
- 10623 .loc 1 5041 9
- 10624 01e8 4021 movs r1, #64
- 10625 01ea F868 ldr r0, [r7, #12]
- 10626 01ec FFF7FEFF bl I2C_ITError
- 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10627 .loc 1 4997 8
- 10628 01f0 2FE0 b .L487
- 10629 .L498:
- 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10630 .loc 1 4997 8 is_stmt 0 discriminator 1
- 10631 01f2 2EE0 b .L487
- 10632 .L491:
- 5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
- 10633 .loc 1 5045 13 is_stmt 1
- 10634 01f4 7B69 ldr r3, [r7, #20]
- 10635 01f6 9B09 lsrs r3, r3, #6
- 10636 01f8 03F00103 and r3, r3, #1
- 10637 .loc 1 5045 11
- 10638 01fc 002B cmp r3, #0
- 10639 01fe 28D0 beq .L487
- 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 10640 .loc 1 5046 13 discriminator 1
- 10641 0200 7B68 ldr r3, [r7, #4]
- 10642 0202 9B09 lsrs r3, r3, #6
- 10643 0204 03F00103 and r3, r3, #1
- 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 10644 .loc 1 5045 63 discriminator 1
- 10645 0208 002B cmp r3, #0
- 10646 020a 22D0 beq .L487
- 5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
- 10647 .loc 1 5048 13
- 10648 020c FB68 ldr r3, [r7, #12]
- 10649 020e 5B8D ldrh r3, [r3, #42] @ movhi
- 10650 0210 9BB2 uxth r3, r3
- 10651 .loc 1 5048 8
- 10652 0212 002B cmp r3, #0
- 10653 0214 19D1 bne .L500
- 5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
- 10654 .loc 1 5050 11
- 10655 0216 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 277
- 10656 0218 1B68 ldr r3, [r3]
- 10657 021a 5B68 ldr r3, [r3, #4]
- 10658 021c 03F00073 and r3, r3, #33554432
- 10659 .loc 1 5050 10
- 10660 0220 B3F1007F cmp r3, #33554432
- 10661 0224 15D0 beq .L487
- 5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
- 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
- 10662 .loc 1 5053 17
- 10663 0226 FB68 ldr r3, [r7, #12]
- 10664 0228 DB6A ldr r3, [r3, #44]
- 10665 .loc 1 5053 12
- 10666 022a 13F5803F cmn r3, #65536
- 10667 022e 08D1 bne .L501
- 5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
- 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
- 10668 .loc 1 5056 15
- 10669 0230 FB68 ldr r3, [r7, #12]
- 10670 0232 1B68 ldr r3, [r3]
- 10671 .loc 1 5056 31
- 10672 0234 5A68 ldr r2, [r3, #4]
- 10673 .loc 1 5056 15
- 10674 0236 FB68 ldr r3, [r7, #12]
- 10675 0238 1B68 ldr r3, [r3]
- 10676 .loc 1 5056 31
- 10677 023a 42F48042 orr r2, r2, #16384
- 10678 023e 5A60 str r2, [r3, #4]
- 10679 0240 07E0 b .L487
- 10680 .L501:
- 5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
- 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
- 10681 .loc 1 5061 11
- 10682 0242 F868 ldr r0, [r7, #12]
- 10683 0244 FFF7FEFF bl I2C_ITMasterSeqCplt
- 10684 0248 03E0 b .L487
- 10685 .L500:
- 5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
- 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
- 10686 .loc 1 5069 7
- 10687 024a 4021 movs r1, #64
- 10688 024c F868 ldr r0, [r7, #12]
- 10689 024e FFF7FEFF bl I2C_ITError
- 10690 .L487:
- 5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 278
- 5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
- 10691 .loc 1 5077 8
- 10692 0252 7B69 ldr r3, [r7, #20]
- 10693 0254 5B09 lsrs r3, r3, #5
- 10694 0256 03F00103 and r3, r3, #1
- 10695 .loc 1 5077 6
- 10696 025a 002B cmp r3, #0
- 10697 025c 09D0 beq .L502
- 5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 10698 .loc 1 5078 8 discriminator 1
- 10699 025e 7B68 ldr r3, [r7, #4]
- 10700 0260 5B09 lsrs r3, r3, #5
- 10701 0262 03F00103 and r3, r3, #1
- 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 10702 .loc 1 5077 61 discriminator 1
- 10703 0266 002B cmp r3, #0
- 10704 0268 03D0 beq .L502
- 5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
- 5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
- 10705 .loc 1 5081 5
- 10706 026a 7969 ldr r1, [r7, #20]
- 10707 026c F868 ldr r0, [r7, #12]
- 10708 026e FFF7FEFF bl I2C_ITMasterCplt
- 10709 .L502:
- 5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 10710 .loc 1 5085 3
- 10711 0272 FB68 ldr r3, [r7, #12]
- 10712 0274 0022 movs r2, #0
- 10713 0276 83F84020 strb r2, [r3, #64]
- 5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 10714 .loc 1 5087 10
- 10715 027a 0023 movs r3, #0
- 10716 .L485:
- 5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 10717 .loc 1 5088 1
- 10718 027c 1846 mov r0, r3
- 10719 027e 1837 adds r7, r7, #24
- 10720 .LCFI263:
- 10721 .cfi_def_cfa_offset 8
- 10722 0280 BD46 mov sp, r7
- 10723 .LCFI264:
- 10724 .cfi_def_cfa_register 13
- 10725 @ sp needed
- 10726 0282 80BD pop {r7, pc}
- 10727 .cfi_endproc
- 10728 .LFE179:
- 10730 .section .text.I2C_Mem_ISR_IT,"ax",%progbits
- 10731 .align 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 279
- 10732 .syntax unified
- 10733 .thumb
- 10734 .thumb_func
- 10736 I2C_Mem_ISR_IT:
- 10737 .LFB180:
- 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt.
- 5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
- 5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
- 5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10738 .loc 1 5100 1
- 10739 .cfi_startproc
- 10740 @ args = 0, pretend = 0, frame = 24
- 10741 @ frame_needed = 1, uses_anonymous_args = 0
- 10742 0000 80B5 push {r7, lr}
- 10743 .LCFI265:
- 10744 .cfi_def_cfa_offset 8
- 10745 .cfi_offset 7, -8
- 10746 .cfi_offset 14, -4
- 10747 0002 88B0 sub sp, sp, #32
- 10748 .LCFI266:
- 10749 .cfi_def_cfa_offset 40
- 10750 0004 02AF add r7, sp, #8
- 10751 .LCFI267:
- 10752 .cfi_def_cfa 7, 32
- 10753 0006 F860 str r0, [r7, #12]
- 10754 0008 B960 str r1, [r7, #8]
- 10755 000a 7A60 str r2, [r7, #4]
- 5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
- 10756 .loc 1 5101 12
- 10757 000c 8C4B ldr r3, .L524
- 10758 000e 7B61 str r3, [r7, #20]
- 5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
- 10759 .loc 1 5102 12
- 10760 0010 BB68 ldr r3, [r7, #8]
- 10761 0012 3B61 str r3, [r7, #16]
- 5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 10762 .loc 1 5105 3
- 10763 0014 FB68 ldr r3, [r7, #12]
- 10764 0016 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 10765 001a 012B cmp r3, #1
- 10766 001c 01D1 bne .L504
- 10767 .loc 1 5105 3 is_stmt 0 discriminator 1
- 10768 001e 0223 movs r3, #2
- 10769 0020 39E1 b .L505
- 10770 .L504:
- 10771 .loc 1 5105 3 discriminator 2
- 10772 0022 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 280
- 10773 0024 0122 movs r2, #1
- 10774 0026 83F84020 strb r2, [r3, #64]
- 5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
- 10775 .loc 1 5107 8 is_stmt 1 discriminator 2
- 10776 002a 3B69 ldr r3, [r7, #16]
- 10777 002c 1B09 lsrs r3, r3, #4
- 10778 002e 03F00103 and r3, r3, #1
- 10779 .loc 1 5107 6 discriminator 2
- 10780 0032 002B cmp r3, #0
- 10781 0034 13D0 beq .L506
- 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 10782 .loc 1 5108 8 discriminator 1
- 10783 0036 7B68 ldr r3, [r7, #4]
- 10784 0038 1B09 lsrs r3, r3, #4
- 10785 003a 03F00103 and r3, r3, #1
- 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 10786 .loc 1 5107 58 discriminator 1
- 10787 003e 002B cmp r3, #0
- 10788 0040 0DD0 beq .L506
- 5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 10789 .loc 1 5111 5
- 10790 0042 FB68 ldr r3, [r7, #12]
- 10791 0044 1B68 ldr r3, [r3]
- 10792 0046 1022 movs r2, #16
- 10793 0048 DA61 str r2, [r3, #28]
- 5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
- 5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
- 5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
- 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 10794 .loc 1 5116 21
- 10795 004a FB68 ldr r3, [r7, #12]
- 10796 004c 5B6C ldr r3, [r3, #68]
- 10797 004e 43F00402 orr r2, r3, #4
- 10798 0052 FB68 ldr r3, [r7, #12]
- 10799 0054 5A64 str r2, [r3, #68]
- 5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 10800 .loc 1 5119 5
- 10801 0056 F868 ldr r0, [r7, #12]
- 10802 0058 FFF7FEFF bl I2C_Flush_TXDR
- 10803 005c 06E1 b .L507
- 10804 .L506:
- 5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
- 10805 .loc 1 5121 13
- 10806 005e 3B69 ldr r3, [r7, #16]
- 10807 0060 9B08 lsrs r3, r3, #2
- 10808 0062 03F00103 and r3, r3, #1
- 10809 .loc 1 5121 11
- 10810 0066 002B cmp r3, #0
- 10811 0068 23D0 beq .L508
- 5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 281
- 10812 .loc 1 5122 13 discriminator 1
- 10813 006a 7B68 ldr r3, [r7, #4]
- 10814 006c 9B08 lsrs r3, r3, #2
- 10815 006e 03F00103 and r3, r3, #1
- 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
- 10816 .loc 1 5121 65 discriminator 1
- 10817 0072 002B cmp r3, #0
- 10818 0074 1DD0 beq .L508
- 5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
- 5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
- 10819 .loc 1 5125 16
- 10820 0076 3B69 ldr r3, [r7, #16]
- 10821 0078 23F00403 bic r3, r3, #4
- 10822 007c 3B61 str r3, [r7, #16]
- 5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 10823 .loc 1 5128 36
- 10824 007e FB68 ldr r3, [r7, #12]
- 10825 0080 1B68 ldr r3, [r3]
- 10826 .loc 1 5128 46
- 10827 0082 5A6A ldr r2, [r3, #36]
- 10828 .loc 1 5128 10
- 10829 0084 FB68 ldr r3, [r7, #12]
- 10830 0086 5B6A ldr r3, [r3, #36]
- 10831 .loc 1 5128 23
- 10832 0088 D2B2 uxtb r2, r2
- 10833 .loc 1 5128 21
- 10834 008a 1A70 strb r2, [r3]
- 5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 10835 .loc 1 5131 9
- 10836 008c FB68 ldr r3, [r7, #12]
- 10837 008e 5B6A ldr r3, [r3, #36]
- 10838 .loc 1 5131 19
- 10839 0090 5A1C adds r2, r3, #1
- 10840 0092 FB68 ldr r3, [r7, #12]
- 10841 0094 5A62 str r2, [r3, #36]
- 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 10842 .loc 1 5133 9
- 10843 0096 FB68 ldr r3, [r7, #12]
- 10844 0098 1B8D ldrh r3, [r3, #40]
- 10845 .loc 1 5133 19
- 10846 009a 013B subs r3, r3, #1
- 10847 009c 9AB2 uxth r2, r3
- 10848 009e FB68 ldr r3, [r7, #12]
- 10849 00a0 1A85 strh r2, [r3, #40] @ movhi
- 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 10850 .loc 1 5134 9
- 10851 00a2 FB68 ldr r3, [r7, #12]
- 10852 00a4 5B8D ldrh r3, [r3, #42] @ movhi
- 10853 00a6 9BB2 uxth r3, r3
- 10854 .loc 1 5134 20
- 10855 00a8 013B subs r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 282
- 10856 00aa 9AB2 uxth r2, r3
- 10857 00ac FB68 ldr r3, [r7, #12]
- 10858 00ae 5A85 strh r2, [r3, #42] @ movhi
- 10859 00b0 DCE0 b .L507
- 10860 .L508:
- 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
- 10861 .loc 1 5136 13
- 10862 00b2 3B69 ldr r3, [r7, #16]
- 10863 00b4 5B08 lsrs r3, r3, #1
- 10864 00b6 03F00103 and r3, r3, #1
- 10865 .loc 1 5136 11
- 10866 00ba 002B cmp r3, #0
- 10867 00bc 2DD0 beq .L509
- 5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
- 10868 .loc 1 5137 13 discriminator 1
- 10869 00be 7B68 ldr r3, [r7, #4]
- 10870 00c0 5B08 lsrs r3, r3, #1
- 10871 00c2 03F00103 and r3, r3, #1
- 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
- 10872 .loc 1 5136 65 discriminator 1
- 10873 00c6 002B cmp r3, #0
- 10874 00c8 27D0 beq .L509
- 5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU)
- 10875 .loc 1 5139 13
- 10876 00ca FB68 ldr r3, [r7, #12]
- 10877 00cc 1B6D ldr r3, [r3, #80]
- 10878 .loc 1 5139 8
- 10879 00ce B3F1FF3F cmp r3, #-1
- 10880 00d2 18D1 bne .L510
- 5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 10881 .loc 1 5142 35
- 10882 00d4 FB68 ldr r3, [r7, #12]
- 10883 00d6 5B6A ldr r3, [r3, #36]
- 10884 .loc 1 5142 30
- 10885 00d8 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 10886 .loc 1 5142 11
- 10887 00da FB68 ldr r3, [r7, #12]
- 10888 00dc 1B68 ldr r3, [r3]
- 10889 .loc 1 5142 28
- 10890 00de 9A62 str r2, [r3, #40]
- 5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 10891 .loc 1 5145 11
- 10892 00e0 FB68 ldr r3, [r7, #12]
- 10893 00e2 5B6A ldr r3, [r3, #36]
- 10894 .loc 1 5145 21
- 10895 00e4 5A1C adds r2, r3, #1
- 10896 00e6 FB68 ldr r3, [r7, #12]
- 10897 00e8 5A62 str r2, [r3, #36]
- 5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 10898 .loc 1 5147 11
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 283
- 10899 00ea FB68 ldr r3, [r7, #12]
- 10900 00ec 1B8D ldrh r3, [r3, #40]
- 10901 .loc 1 5147 21
- 10902 00ee 013B subs r3, r3, #1
- 10903 00f0 9AB2 uxth r2, r3
- 10904 00f2 FB68 ldr r3, [r7, #12]
- 10905 00f4 1A85 strh r2, [r3, #40] @ movhi
- 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 10906 .loc 1 5148 11
- 10907 00f6 FB68 ldr r3, [r7, #12]
- 10908 00f8 5B8D ldrh r3, [r3, #42] @ movhi
- 10909 00fa 9BB2 uxth r3, r3
- 10910 .loc 1 5148 22
- 10911 00fc 013B subs r3, r3, #1
- 10912 00fe 9AB2 uxth r2, r3
- 10913 0100 FB68 ldr r3, [r7, #12]
- 10914 0102 5A85 strh r2, [r3, #42] @ movhi
- 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10915 .loc 1 5139 8
- 10916 0104 B2E0 b .L507
- 10917 .L510:
- 5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
- 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
- 10918 .loc 1 5153 11
- 10919 0106 FB68 ldr r3, [r7, #12]
- 10920 0108 1B68 ldr r3, [r3]
- 10921 .loc 1 5153 34
- 10922 010a FA68 ldr r2, [r7, #12]
- 10923 010c 126D ldr r2, [r2, #80]
- 10924 .loc 1 5153 28
- 10925 010e 9A62 str r2, [r3, #40]
- 5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
- 5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
- 10926 .loc 1 5156 24
- 10927 0110 FB68 ldr r3, [r7, #12]
- 10928 0112 4FF0FF32 mov r2, #-1
- 10929 0116 1A65 str r2, [r3, #80]
- 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 10930 .loc 1 5139 8
- 10931 0118 A8E0 b .L507
- 10932 .L509:
- 5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
- 10933 .loc 1 5159 13
- 10934 011a 3B69 ldr r3, [r7, #16]
- 10935 011c DB09 lsrs r3, r3, #7
- 10936 011e 03F00103 and r3, r3, #1
- 10937 .loc 1 5159 11
- 10938 0122 002B cmp r3, #0
- 10939 0124 4BD0 beq .L512
- 5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 10940 .loc 1 5160 13 discriminator 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 284
- 10941 0126 7B68 ldr r3, [r7, #4]
- 10942 0128 9B09 lsrs r3, r3, #6
- 10943 012a 03F00103 and r3, r3, #1
- 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 10944 .loc 1 5159 64 discriminator 1
- 10945 012e 002B cmp r3, #0
- 10946 0130 45D0 beq .L512
- 5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
- 10947 .loc 1 5162 14
- 10948 0132 FB68 ldr r3, [r7, #12]
- 10949 0134 5B8D ldrh r3, [r3, #42] @ movhi
- 10950 0136 9BB2 uxth r3, r3
- 10951 .loc 1 5162 8
- 10952 0138 002B cmp r3, #0
- 10953 013a 3AD0 beq .L513
- 10954 .loc 1 5162 41 discriminator 1
- 10955 013c FB68 ldr r3, [r7, #12]
- 10956 013e 1B8D ldrh r3, [r3, #40]
- 10957 .loc 1 5162 33 discriminator 1
- 10958 0140 002B cmp r3, #0
- 10959 0142 36D1 bne .L513
- 5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 10960 .loc 1 5164 15
- 10961 0144 FB68 ldr r3, [r7, #12]
- 10962 0146 5B8D ldrh r3, [r3, #42] @ movhi
- 10963 0148 9BB2 uxth r3, r3
- 10964 .loc 1 5164 10
- 10965 014a FF2B cmp r3, #255
- 10966 014c 1ED9 bls .L514
- 5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 10967 .loc 1 5167 13
- 10968 014e FB68 ldr r3, [r7, #12]
- 10969 0150 1B68 ldr r3, [r3]
- 10970 0152 9B69 ldr r3, [r3, #24]
- 10971 0154 1B0C lsrs r3, r3, #16
- 10972 0156 DBB2 uxtb r3, r3
- 10973 0158 03F00103 and r3, r3, #1
- 10974 015c DBB2 uxtb r3, r3
- 10975 .loc 1 5167 12
- 10976 015e 012B cmp r3, #1
- 10977 0160 03D1 bne .L515
- 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 10978 .loc 1 5169 26
- 10979 0162 FB68 ldr r3, [r7, #12]
- 10980 0164 0122 movs r2, #1
- 10981 0166 1A85 strh r2, [r3, #40] @ movhi
- 10982 0168 02E0 b .L516
- 10983 .L515:
- 5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 285
- 10984 .loc 1 5173 26
- 10985 016a FB68 ldr r3, [r7, #12]
- 10986 016c FF22 movs r2, #255
- 10987 016e 1A85 strh r2, [r3, #40] @ movhi
- 10988 .L516:
- 5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 10989 .loc 1 5175 48
- 10990 0170 FB68 ldr r3, [r7, #12]
- 10991 0172 DB6C ldr r3, [r3, #76]
- 10992 .loc 1 5175 9
- 10993 0174 99B2 uxth r1, r3
- 10994 .loc 1 5175 75
- 10995 0176 FB68 ldr r3, [r7, #12]
- 10996 0178 1B8D ldrh r3, [r3, #40]
- 10997 .loc 1 5175 9
- 10998 017a DAB2 uxtb r2, r3
- 10999 017c 0023 movs r3, #0
- 11000 017e 0093 str r3, [sp]
- 11001 0180 4FF08073 mov r3, #16777216
- 11002 0184 F868 ldr r0, [r7, #12]
- 11003 0186 FFF7FEFF bl I2C_TransferConfig
- 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11004 .loc 1 5164 10
- 11005 018a 17E0 b .L518
- 11006 .L514:
- 5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
- 5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 11007 .loc 1 5180 30
- 11008 018c FB68 ldr r3, [r7, #12]
- 11009 018e 5B8D ldrh r3, [r3, #42] @ movhi
- 11010 0190 9AB2 uxth r2, r3
- 11011 .loc 1 5180 24
- 11012 0192 FB68 ldr r3, [r7, #12]
- 11013 0194 1A85 strh r2, [r3, #40] @ movhi
- 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 11014 .loc 1 5181 48
- 11015 0196 FB68 ldr r3, [r7, #12]
- 11016 0198 DB6C ldr r3, [r3, #76]
- 11017 .loc 1 5181 9
- 11018 019a 99B2 uxth r1, r3
- 11019 .loc 1 5181 75
- 11020 019c FB68 ldr r3, [r7, #12]
- 11021 019e 1B8D ldrh r3, [r3, #40]
- 11022 .loc 1 5181 9
- 11023 01a0 DAB2 uxtb r2, r3
- 11024 01a2 0023 movs r3, #0
- 11025 01a4 0093 str r3, [sp]
- 11026 01a6 4FF00073 mov r3, #33554432
- 11027 01aa F868 ldr r0, [r7, #12]
- 11028 01ac FFF7FEFF bl I2C_TransferConfig
- 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11029 .loc 1 5164 10
- 11030 01b0 04E0 b .L518
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 286
- 11031 .L513:
- 5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
- 5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
- 5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
- 11032 .loc 1 5189 7
- 11033 01b2 4021 movs r1, #64
- 11034 01b4 F868 ldr r0, [r7, #12]
- 11035 01b6 FFF7FEFF bl I2C_ITError
- 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11036 .loc 1 5162 8
- 11037 01ba 57E0 b .L507
- 11038 .L518:
- 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11039 .loc 1 5162 8 is_stmt 0 discriminator 1
- 11040 01bc 56E0 b .L507
- 11041 .L512:
- 5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
- 11042 .loc 1 5192 13 is_stmt 1
- 11043 01be 3B69 ldr r3, [r7, #16]
- 11044 01c0 9B09 lsrs r3, r3, #6
- 11045 01c2 03F00103 and r3, r3, #1
- 11046 .loc 1 5192 11
- 11047 01c6 002B cmp r3, #0
- 11048 01c8 50D0 beq .L507
- 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 11049 .loc 1 5193 13 discriminator 1
- 11050 01ca 7B68 ldr r3, [r7, #4]
- 11051 01cc 9B09 lsrs r3, r3, #6
- 11052 01ce 03F00103 and r3, r3, #1
- 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 11053 .loc 1 5192 63 discriminator 1
- 11054 01d2 002B cmp r3, #0
- 11055 01d4 4AD0 beq .L507
- 5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
- 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 11056 .loc 1 5196 5
- 11057 01d6 0121 movs r1, #1
- 11058 01d8 F868 ldr r0, [r7, #12]
- 11059 01da FFF7FEFF bl I2C_Disable_IRQ
- 5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
- 5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
- 11060 .loc 1 5199 5
- 11061 01de 0221 movs r1, #2
- 11062 01e0 F868 ldr r0, [r7, #12]
- 11063 01e2 FFF7FEFF bl I2C_Enable_IRQ
- 5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 11064 .loc 1 5201 13
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 287
- 11065 01e6 FB68 ldr r3, [r7, #12]
- 11066 01e8 93F84130 ldrb r3, [r3, #65]
- 11067 01ec DBB2 uxtb r3, r3
- 11068 .loc 1 5201 8
- 11069 01ee 222B cmp r3, #34
- 11070 01f0 01D1 bne .L519
- 5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
- 11071 .loc 1 5203 17
- 11072 01f2 144B ldr r3, .L524+4
- 11073 01f4 7B61 str r3, [r7, #20]
- 11074 .L519:
- 5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 11075 .loc 1 5206 13
- 11076 01f6 FB68 ldr r3, [r7, #12]
- 11077 01f8 5B8D ldrh r3, [r3, #42] @ movhi
- 11078 01fa 9BB2 uxth r3, r3
- 11079 .loc 1 5206 8
- 11080 01fc FF2B cmp r3, #255
- 11081 01fe 23D9 bls .L520
- 5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 11082 .loc 1 5209 11
- 11083 0200 FB68 ldr r3, [r7, #12]
- 11084 0202 1B68 ldr r3, [r3]
- 11085 0204 9B69 ldr r3, [r3, #24]
- 11086 0206 1B0C lsrs r3, r3, #16
- 11087 0208 DBB2 uxtb r3, r3
- 11088 020a 03F00103 and r3, r3, #1
- 11089 020e DBB2 uxtb r3, r3
- 11090 .loc 1 5209 10
- 11091 0210 012B cmp r3, #1
- 11092 0212 03D1 bne .L521
- 5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 11093 .loc 1 5211 24
- 11094 0214 FB68 ldr r3, [r7, #12]
- 11095 0216 0122 movs r2, #1
- 11096 0218 1A85 strh r2, [r3, #40] @ movhi
- 11097 021a 02E0 b .L522
- 11098 .L521:
- 5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 11099 .loc 1 5215 24
- 11100 021c FB68 ldr r3, [r7, #12]
- 11101 021e FF22 movs r2, #255
- 11102 0220 1A85 strh r2, [r3, #40] @ movhi
- 11103 .L522:
- 5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 */
- 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 288
- 11104 .loc 1 5219 46
- 11105 0222 FB68 ldr r3, [r7, #12]
- 11106 0224 DB6C ldr r3, [r3, #76]
- 11107 .loc 1 5219 7
- 11108 0226 99B2 uxth r1, r3
- 11109 .loc 1 5219 73
- 11110 0228 FB68 ldr r3, [r7, #12]
- 11111 022a 1B8D ldrh r3, [r3, #40]
- 11112 .loc 1 5219 7
- 11113 022c DAB2 uxtb r2, r3
- 11114 022e 7B69 ldr r3, [r7, #20]
- 11115 0230 0093 str r3, [sp]
- 11116 0232 4FF08073 mov r3, #16777216
- 11117 0236 F868 ldr r0, [r7, #12]
- 11118 0238 FFF7FEFF bl I2C_TransferConfig
- 11119 023c 16E0 b .L507
- 11120 .L525:
- 11121 023e 00BF .align 2
- 11122 .L524:
- 11123 0240 00200080 .word -2147475456
- 11124 0244 00240080 .word -2147474432
- 11125 .L520:
- 5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
- 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 11126 .loc 1 5224 28
- 11127 0248 FB68 ldr r3, [r7, #12]
- 11128 024a 5B8D ldrh r3, [r3, #42] @ movhi
- 11129 024c 9AB2 uxth r2, r3
- 11130 .loc 1 5224 22
- 11131 024e FB68 ldr r3, [r7, #12]
- 11132 0250 1A85 strh r2, [r3, #40] @ movhi
- 5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
- 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 11133 .loc 1 5227 46
- 11134 0252 FB68 ldr r3, [r7, #12]
- 11135 0254 DB6C ldr r3, [r3, #76]
- 11136 .loc 1 5227 7
- 11137 0256 99B2 uxth r1, r3
- 11138 .loc 1 5227 73
- 11139 0258 FB68 ldr r3, [r7, #12]
- 11140 025a 1B8D ldrh r3, [r3, #40]
- 11141 .loc 1 5227 7
- 11142 025c DAB2 uxtb r2, r3
- 11143 025e 7B69 ldr r3, [r7, #20]
- 11144 0260 0093 str r3, [sp]
- 11145 0262 4FF00073 mov r3, #33554432
- 11146 0266 F868 ldr r0, [r7, #12]
- 11147 0268 FFF7FEFF bl I2C_TransferConfig
- 11148 .L507:
- 5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
- 5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 289
- 5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
- 11149 .loc 1 5236 8
- 11150 026c 3B69 ldr r3, [r7, #16]
- 11151 026e 5B09 lsrs r3, r3, #5
- 11152 0270 03F00103 and r3, r3, #1
- 11153 .loc 1 5236 6
- 11154 0274 002B cmp r3, #0
- 11155 0276 09D0 beq .L523
- 5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 11156 .loc 1 5237 8 discriminator 1
- 11157 0278 7B68 ldr r3, [r7, #4]
- 11158 027a 5B09 lsrs r3, r3, #5
- 11159 027c 03F00103 and r3, r3, #1
- 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 11160 .loc 1 5236 61 discriminator 1
- 11161 0280 002B cmp r3, #0
- 11162 0282 03D0 beq .L523
- 5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
- 5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
- 11163 .loc 1 5240 5
- 11164 0284 3969 ldr r1, [r7, #16]
- 11165 0286 F868 ldr r0, [r7, #12]
- 11166 0288 FFF7FEFF bl I2C_ITMasterCplt
- 11167 .L523:
- 5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 11168 .loc 1 5244 3
- 11169 028c FB68 ldr r3, [r7, #12]
- 11170 028e 0022 movs r2, #0
- 11171 0290 83F84020 strb r2, [r3, #64]
- 5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 11172 .loc 1 5246 10
- 11173 0294 0023 movs r3, #0
- 11174 .L505:
- 5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 11175 .loc 1 5247 1
- 11176 0296 1846 mov r0, r3
- 11177 0298 1837 adds r7, r7, #24
- 11178 .LCFI268:
- 11179 .cfi_def_cfa_offset 8
- 11180 029a BD46 mov sp, r7
- 11181 .LCFI269:
- 11182 .cfi_def_cfa_register 13
- 11183 @ sp needed
- 11184 029c 80BD pop {r7, pc}
- 11185 .cfi_endproc
- 11186 .LFE180:
- 11188 029e 00BF .section .text.I2C_Slave_ISR_IT,"ax",%progbits
- 11189 .align 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 290
- 11190 .syntax unified
- 11191 .thumb
- 11192 .thumb_func
- 11194 I2C_Slave_ISR_IT:
- 11195 .LFB181:
- 5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
- 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
- 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
- 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11196 .loc 1 5259 1
- 11197 .cfi_startproc
- 11198 @ args = 0, pretend = 0, frame = 24
- 11199 @ frame_needed = 1, uses_anonymous_args = 0
- 11200 0000 80B5 push {r7, lr}
- 11201 .LCFI270:
- 11202 .cfi_def_cfa_offset 8
- 11203 .cfi_offset 7, -8
- 11204 .cfi_offset 14, -4
- 11205 0002 86B0 sub sp, sp, #24
- 11206 .LCFI271:
- 11207 .cfi_def_cfa_offset 32
- 11208 0004 00AF add r7, sp, #0
- 11209 .LCFI272:
- 11210 .cfi_def_cfa_register 7
- 11211 0006 F860 str r0, [r7, #12]
- 11212 0008 B960 str r1, [r7, #8]
- 11213 000a 7A60 str r2, [r7, #4]
- 5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
- 11214 .loc 1 5260 12
- 11215 000c FB68 ldr r3, [r7, #12]
- 11216 000e DB6A ldr r3, [r3, #44]
- 11217 0010 7B61 str r3, [r7, #20]
- 5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
- 11218 .loc 1 5261 12
- 11219 0012 BB68 ldr r3, [r7, #8]
- 11220 0014 3B61 str r3, [r7, #16]
- 5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
- 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 11221 .loc 1 5264 3
- 11222 0016 FB68 ldr r3, [r7, #12]
- 11223 0018 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 11224 001c 012B cmp r3, #1
- 11225 001e 01D1 bne .L527
- 11226 .loc 1 5264 3 is_stmt 0 discriminator 1
- 11227 0020 0223 movs r3, #2
- 11228 0022 EDE0 b .L528
- 11229 .L527:
- 11230 .loc 1 5264 3 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 291
- 11231 0024 FB68 ldr r3, [r7, #12]
- 11232 0026 0122 movs r2, #1
- 11233 0028 83F84020 strb r2, [r3, #64]
- 5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
- 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
- 11234 .loc 1 5267 8 is_stmt 1 discriminator 2
- 11235 002c 3B69 ldr r3, [r7, #16]
- 11236 002e 5B09 lsrs r3, r3, #5
- 11237 0030 03F00103 and r3, r3, #1
- 11238 .loc 1 5267 6 discriminator 2
- 11239 0034 002B cmp r3, #0
- 11240 0036 0AD0 beq .L529
- 5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 11241 .loc 1 5268 8 discriminator 1
- 11242 0038 7B68 ldr r3, [r7, #4]
- 11243 003a 5B09 lsrs r3, r3, #5
- 11244 003c 03F00103 and r3, r3, #1
- 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 11245 .loc 1 5267 61 discriminator 1
- 11246 0040 002B cmp r3, #0
- 11247 0042 04D0 beq .L529
- 5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
- 5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
- 11248 .loc 1 5271 5
- 11249 0044 3969 ldr r1, [r7, #16]
- 11250 0046 F868 ldr r0, [r7, #12]
- 11251 0048 FFF7FEFF bl I2C_ITSlaveCplt
- 11252 004c D3E0 b .L530
- 11253 .L529:
- 5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
- 11254 .loc 1 5273 13
- 11255 004e 3B69 ldr r3, [r7, #16]
- 11256 0050 1B09 lsrs r3, r3, #4
- 11257 0052 03F00103 and r3, r3, #1
- 11258 .loc 1 5273 11
- 11259 0056 002B cmp r3, #0
- 11260 0058 4DD0 beq .L531
- 5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 11261 .loc 1 5274 13 discriminator 1
- 11262 005a 7B68 ldr r3, [r7, #4]
- 11263 005c 1B09 lsrs r3, r3, #4
- 11264 005e 03F00103 and r3, r3, #1
- 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 11265 .loc 1 5273 63 discriminator 1
- 11266 0062 002B cmp r3, #0
- 11267 0064 47D0 beq .L531
- 5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
- 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 */
- 5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
- 5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
- 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
- 11268 .loc 1 5280 13
- 11269 0066 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 292
- 11270 0068 5B8D ldrh r3, [r3, #42] @ movhi
- 11271 006a 9BB2 uxth r3, r3
- 11272 .loc 1 5280 8
- 11273 006c 002B cmp r3, #0
- 11274 006e 28D1 bne .L532
- 5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
- 11275 .loc 1 5282 16
- 11276 0070 FB68 ldr r3, [r7, #12]
- 11277 0072 93F84130 ldrb r3, [r3, #65]
- 11278 0076 DBB2 uxtb r3, r3
- 11279 .loc 1 5282 10
- 11280 0078 282B cmp r3, #40
- 11281 007a 08D1 bne .L533
- 11282 .loc 1 5282 49 discriminator 1
- 11283 007c 7B69 ldr r3, [r7, #20]
- 11284 007e B3F1007F cmp r3, #33554432
- 11285 0082 04D1 bne .L533
- 5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
- 5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
- 5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
- 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
- 11286 .loc 1 5287 9
- 11287 0084 3969 ldr r1, [r7, #16]
- 11288 0086 F868 ldr r0, [r7, #12]
- 11289 0088 FFF7FEFF bl I2C_ITListenCplt
- 11290 008c 32E0 b .L536
- 11291 .L533:
- 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 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)
- 11292 .loc 1 5289 21
- 11293 008e FB68 ldr r3, [r7, #12]
- 11294 0090 93F84130 ldrb r3, [r3, #65]
- 11295 0094 DBB2 uxtb r3, r3
- 11296 .loc 1 5289 15
- 11297 0096 292B cmp r3, #41
- 11298 0098 0ED1 bne .L535
- 11299 .loc 1 5289 62 discriminator 1
- 11300 009a 7B69 ldr r3, [r7, #20]
- 11301 009c 13F5803F cmn r3, #65536
- 11302 00a0 0AD0 beq .L535
- 5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 11303 .loc 1 5292 9
- 11304 00a2 FB68 ldr r3, [r7, #12]
- 11305 00a4 1B68 ldr r3, [r3]
- 11306 00a6 1022 movs r2, #16
- 11307 00a8 DA61 str r2, [r3, #28]
- 5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 11308 .loc 1 5295 9
- 11309 00aa F868 ldr r0, [r7, #12]
- 11310 00ac FFF7FEFF bl I2C_Flush_TXDR
- 5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 293
- 5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
- 5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- 5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 11311 .loc 1 5299 9
- 11312 00b0 F868 ldr r0, [r7, #12]
- 11313 00b2 FFF7FEFF bl I2C_ITSlaveSeqCplt
- 11314 00b6 1DE0 b .L536
- 11315 .L535:
- 5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 11316 .loc 1 5304 9
- 11317 00b8 FB68 ldr r3, [r7, #12]
- 11318 00ba 1B68 ldr r3, [r3]
- 11319 00bc 1022 movs r2, #16
- 11320 00be DA61 str r2, [r3, #28]
- 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11321 .loc 1 5280 8
- 11322 00c0 96E0 b .L544
- 11323 .L532:
- 5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 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*/
- 5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 11324 .loc 1 5311 7
- 11325 00c2 FB68 ldr r3, [r7, #12]
- 11326 00c4 1B68 ldr r3, [r3]
- 11327 00c6 1022 movs r2, #16
- 11328 00c8 DA61 str r2, [r3, #28]
- 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
- 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 11329 .loc 1 5314 23
- 11330 00ca FB68 ldr r3, [r7, #12]
- 11331 00cc 5B6C ldr r3, [r3, #68]
- 11332 00ce 43F00402 orr r2, r3, #4
- 11333 00d2 FB68 ldr r3, [r7, #12]
- 11334 00d4 5A64 str r2, [r3, #68]
- 5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
- 11335 .loc 1 5316 10
- 11336 00d6 7B69 ldr r3, [r7, #20]
- 11337 00d8 002B cmp r3, #0
- 11338 00da 04D0 beq .L537
- 11339 .loc 1 5316 43 discriminator 1
- 11340 00dc 7B69 ldr r3, [r7, #20]
- 11341 00de B3F1807F cmp r3, #16777216
- 11342 00e2 40F08580 bne .L544
- 11343 .L537:
- 5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 294
- 11344 .loc 1 5319 9
- 11345 00e6 FB68 ldr r3, [r7, #12]
- 11346 00e8 5B6C ldr r3, [r3, #68]
- 11347 00ea 1946 mov r1, r3
- 11348 00ec F868 ldr r0, [r7, #12]
- 11349 00ee FFF7FEFF bl I2C_ITError
- 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11350 .loc 1 5280 8
- 11351 00f2 7DE0 b .L544
- 11352 .L536:
- 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11353 .loc 1 5280 8 is_stmt 0 discriminator 1
- 11354 00f4 7CE0 b .L544
- 11355 .L531:
- 5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
- 11356 .loc 1 5323 13 is_stmt 1
- 11357 00f6 3B69 ldr r3, [r7, #16]
- 11358 00f8 9B08 lsrs r3, r3, #2
- 11359 00fa 03F00103 and r3, r3, #1
- 11360 .loc 1 5323 11
- 11361 00fe 002B cmp r3, #0
- 11362 0100 30D0 beq .L538
- 5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
- 11363 .loc 1 5324 13 discriminator 1
- 11364 0102 7B68 ldr r3, [r7, #4]
- 11365 0104 9B08 lsrs r3, r3, #2
- 11366 0106 03F00103 and r3, r3, #1
- 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
- 11367 .loc 1 5323 65 discriminator 1
- 11368 010a 002B cmp r3, #0
- 11369 010c 2AD0 beq .L538
- 5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
- 11370 .loc 1 5326 13
- 11371 010e FB68 ldr r3, [r7, #12]
- 11372 0110 5B8D ldrh r3, [r3, #42] @ movhi
- 11373 0112 9BB2 uxth r3, r3
- 11374 .loc 1 5326 8
- 11375 0114 002B cmp r3, #0
- 11376 0116 18D0 beq .L539
- 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 11377 .loc 1 5329 38
- 11378 0118 FB68 ldr r3, [r7, #12]
- 11379 011a 1B68 ldr r3, [r3]
- 11380 .loc 1 5329 48
- 11381 011c 5A6A ldr r2, [r3, #36]
- 11382 .loc 1 5329 12
- 11383 011e FB68 ldr r3, [r7, #12]
- 11384 0120 5B6A ldr r3, [r3, #36]
- 11385 .loc 1 5329 25
- 11386 0122 D2B2 uxtb r2, r2
- 11387 .loc 1 5329 23
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 295
- 11388 0124 1A70 strb r2, [r3]
- 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 11389 .loc 1 5332 11
- 11390 0126 FB68 ldr r3, [r7, #12]
- 11391 0128 5B6A ldr r3, [r3, #36]
- 11392 .loc 1 5332 21
- 11393 012a 5A1C adds r2, r3, #1
- 11394 012c FB68 ldr r3, [r7, #12]
- 11395 012e 5A62 str r2, [r3, #36]
- 5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 11396 .loc 1 5334 11
- 11397 0130 FB68 ldr r3, [r7, #12]
- 11398 0132 1B8D ldrh r3, [r3, #40]
- 11399 .loc 1 5334 21
- 11400 0134 013B subs r3, r3, #1
- 11401 0136 9AB2 uxth r2, r3
- 11402 0138 FB68 ldr r3, [r7, #12]
- 11403 013a 1A85 strh r2, [r3, #40] @ movhi
- 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 11404 .loc 1 5335 11
- 11405 013c FB68 ldr r3, [r7, #12]
- 11406 013e 5B8D ldrh r3, [r3, #42] @ movhi
- 11407 0140 9BB2 uxth r3, r3
- 11408 .loc 1 5335 22
- 11409 0142 013B subs r3, r3, #1
- 11410 0144 9AB2 uxth r2, r3
- 11411 0146 FB68 ldr r3, [r7, #12]
- 11412 0148 5A85 strh r2, [r3, #42] @ movhi
- 11413 .L539:
- 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
- 11414 .loc 1 5338 14
- 11415 014a FB68 ldr r3, [r7, #12]
- 11416 014c 5B8D ldrh r3, [r3, #42] @ movhi
- 11417 014e 9BB2 uxth r3, r3
- 11418 .loc 1 5338 8
- 11419 0150 002B cmp r3, #0
- 11420 0152 4FD1 bne .L545
- 11421 .loc 1 5338 33 discriminator 1
- 11422 0154 7B69 ldr r3, [r7, #20]
- 11423 0156 13F5803F cmn r3, #65536
- 11424 015a 4BD0 beq .L545
- 5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
- 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 11425 .loc 1 5342 7
- 11426 015c F868 ldr r0, [r7, #12]
- 11427 015e FFF7FEFF bl I2C_ITSlaveSeqCplt
- 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
- 11428 .loc 1 5338 8
- 11429 0162 47E0 b .L545
- 11430 .L538:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 296
- 5343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
- 11431 .loc 1 5345 13
- 11432 0164 3B69 ldr r3, [r7, #16]
- 11433 0166 DB08 lsrs r3, r3, #3
- 11434 0168 03F00103 and r3, r3, #1
- 11435 .loc 1 5345 11
- 11436 016c 002B cmp r3, #0
- 11437 016e 0AD0 beq .L541
- 5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
- 11438 .loc 1 5346 13 discriminator 1
- 11439 0170 7B68 ldr r3, [r7, #4]
- 11440 0172 DB08 lsrs r3, r3, #3
- 11441 0174 03F00103 and r3, r3, #1
- 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
- 11442 .loc 1 5345 65 discriminator 1
- 11443 0178 002B cmp r3, #0
- 11444 017a 04D0 beq .L541
- 5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
- 11445 .loc 1 5348 5
- 11446 017c 3969 ldr r1, [r7, #16]
- 11447 017e F868 ldr r0, [r7, #12]
- 11448 0180 FFF7FEFF bl I2C_ITAddrCplt
- 11449 0184 37E0 b .L530
- 11450 .L541:
- 5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
- 11451 .loc 1 5350 13
- 11452 0186 3B69 ldr r3, [r7, #16]
- 11453 0188 5B08 lsrs r3, r3, #1
- 11454 018a 03F00103 and r3, r3, #1
- 11455 .loc 1 5350 11
- 11456 018e 002B cmp r3, #0
- 11457 0190 31D0 beq .L530
- 5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
- 11458 .loc 1 5351 13 discriminator 1
- 11459 0192 7B68 ldr r3, [r7, #4]
- 11460 0194 5B08 lsrs r3, r3, #1
- 11461 0196 03F00103 and r3, r3, #1
- 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
- 11462 .loc 1 5350 65 discriminator 1
- 11463 019a 002B cmp r3, #0
- 11464 019c 2BD0 beq .L530
- 5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
- 5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
- 5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */
- 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 */
- 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
- 11465 .loc 1 5357 13
- 11466 019e FB68 ldr r3, [r7, #12]
- 11467 01a0 5B8D ldrh r3, [r3, #42] @ movhi
- 11468 01a2 9BB2 uxth r3, r3
- 11469 .loc 1 5357 8
- 11470 01a4 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 297
- 11471 01a6 18D0 beq .L542
- 5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
- 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
- 11472 .loc 1 5360 35
- 11473 01a8 FB68 ldr r3, [r7, #12]
- 11474 01aa 5B6A ldr r3, [r3, #36]
- 11475 .loc 1 5360 30
- 11476 01ac 1A78 ldrb r2, [r3] @ zero_extendqisi2
- 11477 .loc 1 5360 11
- 11478 01ae FB68 ldr r3, [r7, #12]
- 11479 01b0 1B68 ldr r3, [r3]
- 11480 .loc 1 5360 28
- 11481 01b2 9A62 str r2, [r3, #40]
- 5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 11482 .loc 1 5363 11
- 11483 01b4 FB68 ldr r3, [r7, #12]
- 11484 01b6 5B6A ldr r3, [r3, #36]
- 11485 .loc 1 5363 21
- 11486 01b8 5A1C adds r2, r3, #1
- 11487 01ba FB68 ldr r3, [r7, #12]
- 11488 01bc 5A62 str r2, [r3, #36]
- 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 11489 .loc 1 5365 11
- 11490 01be FB68 ldr r3, [r7, #12]
- 11491 01c0 5B8D ldrh r3, [r3, #42] @ movhi
- 11492 01c2 9BB2 uxth r3, r3
- 11493 .loc 1 5365 22
- 11494 01c4 013B subs r3, r3, #1
- 11495 01c6 9AB2 uxth r2, r3
- 11496 01c8 FB68 ldr r3, [r7, #12]
- 11497 01ca 5A85 strh r2, [r3, #42] @ movhi
- 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 11498 .loc 1 5366 11
- 11499 01cc FB68 ldr r3, [r7, #12]
- 11500 01ce 1B8D ldrh r3, [r3, #40]
- 11501 .loc 1 5366 21
- 11502 01d0 013B subs r3, r3, #1
- 11503 01d2 9AB2 uxth r2, r3
- 11504 01d4 FB68 ldr r3, [r7, #12]
- 11505 01d6 1A85 strh r2, [r3, #40] @ movhi
- 11506 01d8 0DE0 b .L530
- 11507 .L542:
- 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
- 11508 .loc 1 5370 10
- 11509 01da 7B69 ldr r3, [r7, #20]
- 11510 01dc B3F1807F cmp r3, #16777216
- 11511 01e0 02D0 beq .L543
- 11512 .loc 1 5370 42 discriminator 1
- 11513 01e2 7B69 ldr r3, [r7, #20]
- 11514 01e4 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 298
- 11515 01e6 06D1 bne .L530
- 11516 .L543:
- 5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
- 5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 11517 .loc 1 5374 9
- 11518 01e8 F868 ldr r0, [r7, #12]
- 11519 01ea FFF7FEFF bl I2C_ITSlaveSeqCplt
- 11520 01ee 02E0 b .L530
- 11521 .L544:
- 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11522 .loc 1 5280 8
- 11523 01f0 00BF nop
- 11524 01f2 00E0 b .L530
- 11525 .L545:
- 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
- 11526 .loc 1 5338 8
- 11527 01f4 00BF nop
- 11528 .L530:
- 5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 11529 .loc 1 5384 3
- 11530 01f6 FB68 ldr r3, [r7, #12]
- 11531 01f8 0022 movs r2, #0
- 11532 01fa 83F84020 strb r2, [r3, #64]
- 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 11533 .loc 1 5386 10
- 11534 01fe 0023 movs r3, #0
- 11535 .L528:
- 5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 11536 .loc 1 5387 1
- 11537 0200 1846 mov r0, r3
- 11538 0202 1837 adds r7, r7, #24
- 11539 .LCFI273:
- 11540 .cfi_def_cfa_offset 8
- 11541 0204 BD46 mov sp, r7
- 11542 .LCFI274:
- 11543 .cfi_def_cfa_register 13
- 11544 @ sp needed
- 11545 0206 80BD pop {r7, pc}
- 11546 .cfi_endproc
- 11547 .LFE181:
- 11549 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
- 11550 .align 1
- 11551 .syntax unified
- 11552 .thumb
- 11553 .thumb_func
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 299
- 11555 I2C_Master_ISR_DMA:
- 11556 .LFB182:
- 5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
- 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
- 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
- 5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11557 .loc 1 5399 1
- 11558 .cfi_startproc
- 11559 @ args = 0, pretend = 0, frame = 24
- 11560 @ frame_needed = 1, uses_anonymous_args = 0
- 11561 0000 80B5 push {r7, lr}
- 11562 .LCFI275:
- 11563 .cfi_def_cfa_offset 8
- 11564 .cfi_offset 7, -8
- 11565 .cfi_offset 14, -4
- 11566 0002 88B0 sub sp, sp, #32
- 11567 .LCFI276:
- 11568 .cfi_def_cfa_offset 40
- 11569 0004 02AF add r7, sp, #8
- 11570 .LCFI277:
- 11571 .cfi_def_cfa 7, 32
- 11572 0006 F860 str r0, [r7, #12]
- 11573 0008 B960 str r1, [r7, #8]
- 11574 000a 7A60 str r2, [r7, #4]
- 5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
- 5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
- 5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 11575 .loc 1 5404 3
- 11576 000c FB68 ldr r3, [r7, #12]
- 11577 000e 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 11578 0012 012B cmp r3, #1
- 11579 0014 01D1 bne .L547
- 11580 .loc 1 5404 3 is_stmt 0 discriminator 1
- 11581 0016 0223 movs r3, #2
- 11582 0018 F0E0 b .L548
- 11583 .L547:
- 11584 .loc 1 5404 3 discriminator 2
- 11585 001a FB68 ldr r3, [r7, #12]
- 11586 001c 0122 movs r2, #1
- 11587 001e 83F84020 strb r2, [r3, #64]
- 5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
- 11588 .loc 1 5406 8 is_stmt 1 discriminator 2
- 11589 0022 BB68 ldr r3, [r7, #8]
- 11590 0024 1B09 lsrs r3, r3, #4
- 11591 0026 03F00103 and r3, r3, #1
- 11592 .loc 1 5406 6 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 300
- 11593 002a 002B cmp r3, #0
- 11594 002c 17D0 beq .L549
- 5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 11595 .loc 1 5407 8 discriminator 1
- 11596 002e 7B68 ldr r3, [r7, #4]
- 11597 0030 1B09 lsrs r3, r3, #4
- 11598 0032 03F00103 and r3, r3, #1
- 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 11599 .loc 1 5406 55 discriminator 1
- 11600 0036 002B cmp r3, #0
- 11601 0038 11D0 beq .L549
- 5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 11602 .loc 1 5410 5
- 11603 003a FB68 ldr r3, [r7, #12]
- 11604 003c 1B68 ldr r3, [r3]
- 11605 003e 1022 movs r2, #16
- 11606 0040 DA61 str r2, [r3, #28]
- 5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
- 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 11607 .loc 1 5413 21
- 11608 0042 FB68 ldr r3, [r7, #12]
- 11609 0044 5B6C ldr r3, [r3, #68]
- 11610 0046 43F00402 orr r2, r3, #4
- 11611 004a FB68 ldr r3, [r7, #12]
- 11612 004c 5A64 str r2, [r3, #68]
- 5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
- 5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
- 5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
- 5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
- 11613 .loc 1 5418 5
- 11614 004e 2021 movs r1, #32
- 11615 0050 F868 ldr r0, [r7, #12]
- 11616 0052 FFF7FEFF bl I2C_Enable_IRQ
- 5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 11617 .loc 1 5421 5
- 11618 0056 F868 ldr r0, [r7, #12]
- 11619 0058 FFF7FEFF bl I2C_Flush_TXDR
- 11620 005c C9E0 b .L550
- 11621 .L549:
- 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
- 11622 .loc 1 5423 13
- 11623 005e BB68 ldr r3, [r7, #8]
- 11624 0060 DB09 lsrs r3, r3, #7
- 11625 0062 03F00103 and r3, r3, #1
- 11626 .loc 1 5423 11
- 11627 0066 002B cmp r3, #0
- 11628 0068 00F08180 beq .L551
- 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 11629 .loc 1 5424 13 discriminator 1
- 11630 006c 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 301
- 11631 006e 9B09 lsrs r3, r3, #6
- 11632 0070 03F00103 and r3, r3, #1
- 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 11633 .loc 1 5423 61 discriminator 1
- 11634 0074 002B cmp r3, #0
- 11635 0076 7AD0 beq .L551
- 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */
- 5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
- 11636 .loc 1 5427 5
- 11637 0078 FB68 ldr r3, [r7, #12]
- 11638 007a 1B68 ldr r3, [r3]
- 11639 007c 1A68 ldr r2, [r3]
- 11640 007e FB68 ldr r3, [r7, #12]
- 11641 0080 1B68 ldr r3, [r3]
- 11642 0082 22F04002 bic r2, r2, #64
- 11643 0086 1A60 str r2, [r3]
- 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
- 11644 .loc 1 5429 13
- 11645 0088 FB68 ldr r3, [r7, #12]
- 11646 008a 5B8D ldrh r3, [r3, #42] @ movhi
- 11647 008c 9BB2 uxth r3, r3
- 11648 .loc 1 5429 8
- 11649 008e 002B cmp r3, #0
- 11650 0090 5CD0 beq .L552
- 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */
- 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
- 11651 .loc 1 5432 35
- 11652 0092 FB68 ldr r3, [r7, #12]
- 11653 0094 1B68 ldr r3, [r3]
- 11654 .loc 1 5432 45
- 11655 0096 5B68 ldr r3, [r3, #4]
- 11656 .loc 1 5432 20
- 11657 0098 9BB2 uxth r3, r3
- 11658 .loc 1 5432 18
- 11659 009a C3F30903 ubfx r3, r3, #0, #10
- 11660 009e 7B82 strh r3, [r7, #18] @ movhi
- 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
- 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 11661 .loc 1 5435 15
- 11662 00a0 FB68 ldr r3, [r7, #12]
- 11663 00a2 5B8D ldrh r3, [r3, #42] @ movhi
- 11664 00a4 9BB2 uxth r3, r3
- 11665 .loc 1 5435 10
- 11666 00a6 FF2B cmp r3, #255
- 11667 00a8 14D9 bls .L553
- 5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 11668 .loc 1 5438 13
- 11669 00aa FB68 ldr r3, [r7, #12]
- 11670 00ac 1B68 ldr r3, [r3]
- 11671 00ae 9B69 ldr r3, [r3, #24]
- 11672 00b0 1B0C lsrs r3, r3, #16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 302
- 11673 00b2 DBB2 uxtb r3, r3
- 11674 00b4 03F00103 and r3, r3, #1
- 11675 00b8 DBB2 uxtb r3, r3
- 11676 .loc 1 5438 12
- 11677 00ba 012B cmp r3, #1
- 11678 00bc 03D1 bne .L554
- 5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 11679 .loc 1 5440 26
- 11680 00be FB68 ldr r3, [r7, #12]
- 11681 00c0 0122 movs r2, #1
- 11682 00c2 1A85 strh r2, [r3, #40] @ movhi
- 11683 00c4 02E0 b .L555
- 11684 .L554:
- 5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 11685 .loc 1 5444 26
- 11686 00c6 FB68 ldr r3, [r7, #12]
- 11687 00c8 FF22 movs r2, #255
- 11688 00ca 1A85 strh r2, [r3, #40] @ movhi
- 11689 .L555:
- 5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
- 11690 .loc 1 5446 18
- 11691 00cc 4FF08073 mov r3, #16777216
- 11692 00d0 7B61 str r3, [r7, #20]
- 11693 00d2 10E0 b .L556
- 11694 .L553:
- 5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 11695 .loc 1 5450 30
- 11696 00d4 FB68 ldr r3, [r7, #12]
- 11697 00d6 5B8D ldrh r3, [r3, #42] @ movhi
- 11698 00d8 9AB2 uxth r2, r3
- 11699 .loc 1 5450 24
- 11700 00da FB68 ldr r3, [r7, #12]
- 11701 00dc 1A85 strh r2, [r3, #40] @ movhi
- 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
- 11702 .loc 1 5451 17
- 11703 00de FB68 ldr r3, [r7, #12]
- 11704 00e0 DB6A ldr r3, [r3, #44]
- 11705 .loc 1 5451 12
- 11706 00e2 13F5803F cmn r3, #65536
- 11707 00e6 03D0 beq .L557
- 5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
- 11708 .loc 1 5453 20
- 11709 00e8 FB68 ldr r3, [r7, #12]
- 11710 00ea DB6A ldr r3, [r3, #44]
- 11711 00ec 7B61 str r3, [r7, #20]
- 11712 00ee 02E0 b .L556
- 11713 .L557:
- 5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 303
- 5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
- 11714 .loc 1 5457 20
- 11715 00f0 4FF00073 mov r3, #33554432
- 11716 00f4 7B61 str r3, [r7, #20]
- 11717 .L556:
- 5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
- 5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
- 11718 .loc 1 5462 57
- 11719 00f6 FB68 ldr r3, [r7, #12]
- 11720 00f8 1B8D ldrh r3, [r3, #40]
- 11721 .loc 1 5462 7
- 11722 00fa DAB2 uxtb r2, r3
- 11723 00fc 798A ldrh r1, [r7, #18]
- 11724 00fe 0023 movs r3, #0
- 11725 0100 0093 str r3, [sp]
- 11726 0102 7B69 ldr r3, [r7, #20]
- 11727 0104 F868 ldr r0, [r7, #12]
- 11728 0106 FFF7FEFF bl I2C_TransferConfig
- 5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 11729 .loc 1 5465 23
- 11730 010a FB68 ldr r3, [r7, #12]
- 11731 010c 5B8D ldrh r3, [r3, #42] @ movhi
- 11732 010e 9AB2 uxth r2, r3
- 11733 .loc 1 5465 30
- 11734 0110 FB68 ldr r3, [r7, #12]
- 11735 0112 1B8D ldrh r3, [r3, #40]
- 11736 .loc 1 5465 23
- 11737 0114 D31A subs r3, r2, r3
- 11738 0116 9AB2 uxth r2, r3
- 11739 0118 FB68 ldr r3, [r7, #12]
- 11740 011a 5A85 strh r2, [r3, #42] @ movhi
- 5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 11741 .loc 1 5468 15
- 11742 011c FB68 ldr r3, [r7, #12]
- 11743 011e 93F84130 ldrb r3, [r3, #65]
- 11744 0122 DBB2 uxtb r3, r3
- 11745 .loc 1 5468 10
- 11746 0124 222B cmp r3, #34
- 11747 0126 08D1 bne .L558
- 5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 11748 .loc 1 5470 13
- 11749 0128 FB68 ldr r3, [r7, #12]
- 11750 012a 1B68 ldr r3, [r3]
- 11751 .loc 1 5470 29
- 11752 012c 1A68 ldr r2, [r3]
- 11753 .loc 1 5470 13
- 11754 012e FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 304
- 11755 0130 1B68 ldr r3, [r3]
- 11756 .loc 1 5470 29
- 11757 0132 42F40042 orr r2, r2, #32768
- 11758 0136 1A60 str r2, [r3]
- 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11759 .loc 1 5429 8
- 11760 0138 5BE0 b .L550
- 11761 .L558:
- 5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 11762 .loc 1 5474 13
- 11763 013a FB68 ldr r3, [r7, #12]
- 11764 013c 1B68 ldr r3, [r3]
- 11765 .loc 1 5474 29
- 11766 013e 1A68 ldr r2, [r3]
- 11767 .loc 1 5474 13
- 11768 0140 FB68 ldr r3, [r7, #12]
- 11769 0142 1B68 ldr r3, [r3]
- 11770 .loc 1 5474 29
- 11771 0144 42F48042 orr r2, r2, #16384
- 11772 0148 1A60 str r2, [r3]
- 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11773 .loc 1 5429 8
- 11774 014a 52E0 b .L550
- 11775 .L552:
- 5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
- 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
- 11776 .loc 1 5480 11
- 11777 014c FB68 ldr r3, [r7, #12]
- 11778 014e 1B68 ldr r3, [r3]
- 11779 0150 5B68 ldr r3, [r3, #4]
- 11780 0152 03F00073 and r3, r3, #33554432
- 11781 .loc 1 5480 10
- 11782 0156 B3F1007F cmp r3, #33554432
- 11783 015a 03D0 beq .L560
- 5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
- 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
- 11784 .loc 1 5483 9
- 11785 015c F868 ldr r0, [r7, #12]
- 11786 015e FFF7FEFF bl I2C_ITMasterSeqCplt
- 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11787 .loc 1 5429 8
- 11788 0162 46E0 b .L550
- 11789 .L560:
- 5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
- 5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 305
- 11790 .loc 1 5489 9
- 11791 0164 4021 movs r1, #64
- 11792 0166 F868 ldr r0, [r7, #12]
- 11793 0168 FFF7FEFF bl I2C_ITError
- 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11794 .loc 1 5429 8
- 11795 016c 41E0 b .L550
- 11796 .L551:
- 5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
- 11797 .loc 1 5493 13
- 11798 016e BB68 ldr r3, [r7, #8]
- 11799 0170 9B09 lsrs r3, r3, #6
- 11800 0172 03F00103 and r3, r3, #1
- 11801 .loc 1 5493 11
- 11802 0176 002B cmp r3, #0
- 11803 0178 29D0 beq .L561
- 5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 11804 .loc 1 5494 13 discriminator 1
- 11805 017a 7B68 ldr r3, [r7, #4]
- 11806 017c 9B09 lsrs r3, r3, #6
- 11807 017e 03F00103 and r3, r3, #1
- 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 11808 .loc 1 5493 60 discriminator 1
- 11809 0182 002B cmp r3, #0
- 11810 0184 23D0 beq .L561
- 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
- 11811 .loc 1 5496 13
- 11812 0186 FB68 ldr r3, [r7, #12]
- 11813 0188 5B8D ldrh r3, [r3, #42] @ movhi
- 11814 018a 9BB2 uxth r3, r3
- 11815 .loc 1 5496 8
- 11816 018c 002B cmp r3, #0
- 11817 018e 19D1 bne .L562
- 5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
- 11818 .loc 1 5498 11
- 11819 0190 FB68 ldr r3, [r7, #12]
- 11820 0192 1B68 ldr r3, [r3]
- 11821 0194 5B68 ldr r3, [r3, #4]
- 11822 0196 03F00073 and r3, r3, #33554432
- 11823 .loc 1 5498 10
- 11824 019a B3F1007F cmp r3, #33554432
- 11825 019e 27D0 beq .L565
- 5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
- 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
- 11826 .loc 1 5501 17
- 11827 01a0 FB68 ldr r3, [r7, #12]
- 11828 01a2 DB6A ldr r3, [r3, #44]
- 11829 .loc 1 5501 12
- 11830 01a4 13F5803F cmn r3, #65536
- 11831 01a8 08D1 bne .L564
- 5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 306
- 5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
- 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
- 11832 .loc 1 5504 15
- 11833 01aa FB68 ldr r3, [r7, #12]
- 11834 01ac 1B68 ldr r3, [r3]
- 11835 .loc 1 5504 31
- 11836 01ae 5A68 ldr r2, [r3, #4]
- 11837 .loc 1 5504 15
- 11838 01b0 FB68 ldr r3, [r7, #12]
- 11839 01b2 1B68 ldr r3, [r3]
- 11840 .loc 1 5504 31
- 11841 01b4 42F48042 orr r2, r2, #16384
- 11842 01b8 5A60 str r2, [r3, #4]
- 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11843 .loc 1 5496 8
- 11844 01ba 19E0 b .L565
- 11845 .L564:
- 5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
- 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
- 11846 .loc 1 5509 11
- 11847 01bc F868 ldr r0, [r7, #12]
- 11848 01be FFF7FEFF bl I2C_ITMasterSeqCplt
- 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11849 .loc 1 5496 8
- 11850 01c2 15E0 b .L565
- 11851 .L562:
- 5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
- 5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
- 11852 .loc 1 5517 7
- 11853 01c4 4021 movs r1, #64
- 11854 01c6 F868 ldr r0, [r7, #12]
- 11855 01c8 FFF7FEFF bl I2C_ITError
- 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11856 .loc 1 5496 8
- 11857 01cc 10E0 b .L565
- 11858 .L561:
- 5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
- 11859 .loc 1 5520 13
- 11860 01ce BB68 ldr r3, [r7, #8]
- 11861 01d0 5B09 lsrs r3, r3, #5
- 11862 01d2 03F00103 and r3, r3, #1
- 11863 .loc 1 5520 11
- 11864 01d6 002B cmp r3, #0
- 11865 01d8 0BD0 beq .L550
- 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 11866 .loc 1 5521 13 discriminator 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 307
- 11867 01da 7B68 ldr r3, [r7, #4]
- 11868 01dc 5B09 lsrs r3, r3, #5
- 11869 01de 03F00103 and r3, r3, #1
- 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 11870 .loc 1 5520 63 discriminator 1
- 11871 01e2 002B cmp r3, #0
- 11872 01e4 05D0 beq .L550
- 5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
- 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
- 11873 .loc 1 5524 5
- 11874 01e6 B968 ldr r1, [r7, #8]
- 11875 01e8 F868 ldr r0, [r7, #12]
- 11876 01ea FFF7FEFF bl I2C_ITMasterCplt
- 11877 01ee 00E0 b .L550
- 11878 .L565:
- 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11879 .loc 1 5496 8
- 11880 01f0 00BF nop
- 11881 .L550:
- 5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 11882 .loc 1 5532 3
- 11883 01f2 FB68 ldr r3, [r7, #12]
- 11884 01f4 0022 movs r2, #0
- 11885 01f6 83F84020 strb r2, [r3, #64]
- 5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 11886 .loc 1 5534 10
- 11887 01fa 0023 movs r3, #0
- 11888 .L548:
- 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 11889 .loc 1 5535 1
- 11890 01fc 1846 mov r0, r3
- 11891 01fe 1837 adds r7, r7, #24
- 11892 .LCFI278:
- 11893 .cfi_def_cfa_offset 8
- 11894 0200 BD46 mov sp, r7
- 11895 .LCFI279:
- 11896 .cfi_def_cfa_register 13
- 11897 @ sp needed
- 11898 0202 80BD pop {r7, pc}
- 11899 .cfi_endproc
- 11900 .LFE182:
- 11902 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits
- 11903 .align 1
- 11904 .syntax unified
- 11905 .thumb
- 11906 .thumb_func
- 11908 I2C_Mem_ISR_DMA:
- 11909 .LFB183:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 308
- 5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA.
- 5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
- 5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
- 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 11910 .loc 1 5547 1
- 11911 .cfi_startproc
- 11912 @ args = 0, pretend = 0, frame = 24
- 11913 @ frame_needed = 1, uses_anonymous_args = 0
- 11914 0000 80B5 push {r7, lr}
- 11915 .LCFI280:
- 11916 .cfi_def_cfa_offset 8
- 11917 .cfi_offset 7, -8
- 11918 .cfi_offset 14, -4
- 11919 0002 88B0 sub sp, sp, #32
- 11920 .LCFI281:
- 11921 .cfi_def_cfa_offset 40
- 11922 0004 02AF add r7, sp, #8
- 11923 .LCFI282:
- 11924 .cfi_def_cfa 7, 32
- 11925 0006 F860 str r0, [r7, #12]
- 11926 0008 B960 str r1, [r7, #8]
- 11927 000a 7A60 str r2, [r7, #4]
- 5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
- 11928 .loc 1 5548 12
- 11929 000c 944B ldr r3, .L588
- 11930 000e 7B61 str r3, [r7, #20]
- 5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
- 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 11931 .loc 1 5551 3
- 11932 0010 FB68 ldr r3, [r7, #12]
- 11933 0012 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 11934 0016 012B cmp r3, #1
- 11935 0018 01D1 bne .L567
- 11936 .loc 1 5551 3 is_stmt 0 discriminator 1
- 11937 001a 0223 movs r3, #2
- 11938 001c 39E1 b .L568
- 11939 .L567:
- 11940 .loc 1 5551 3 discriminator 2
- 11941 001e FB68 ldr r3, [r7, #12]
- 11942 0020 0122 movs r2, #1
- 11943 0022 83F84020 strb r2, [r3, #64]
- 5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
- 11944 .loc 1 5553 8 is_stmt 1 discriminator 2
- 11945 0026 BB68 ldr r3, [r7, #8]
- 11946 0028 1B09 lsrs r3, r3, #4
- 11947 002a 03F00103 and r3, r3, #1
- 11948 .loc 1 5553 6 discriminator 2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 309
- 11949 002e 002B cmp r3, #0
- 11950 0030 17D0 beq .L569
- 5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 11951 .loc 1 5554 8 discriminator 1
- 11952 0032 7B68 ldr r3, [r7, #4]
- 11953 0034 1B09 lsrs r3, r3, #4
- 11954 0036 03F00103 and r3, r3, #1
- 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 11955 .loc 1 5553 55 discriminator 1
- 11956 003a 002B cmp r3, #0
- 11957 003c 11D0 beq .L569
- 5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 11958 .loc 1 5557 5
- 11959 003e FB68 ldr r3, [r7, #12]
- 11960 0040 1B68 ldr r3, [r3]
- 11961 0042 1022 movs r2, #16
- 11962 0044 DA61 str r2, [r3, #28]
- 5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
- 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 11963 .loc 1 5560 21
- 11964 0046 FB68 ldr r3, [r7, #12]
- 11965 0048 5B6C ldr r3, [r3, #68]
- 11966 004a 43F00402 orr r2, r3, #4
- 11967 004e FB68 ldr r3, [r7, #12]
- 11968 0050 5A64 str r2, [r3, #68]
- 5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
- 5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
- 5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
- 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
- 11969 .loc 1 5565 5
- 11970 0052 2021 movs r1, #32
- 11971 0054 F868 ldr r0, [r7, #12]
- 11972 0056 FFF7FEFF bl I2C_Enable_IRQ
- 5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 11973 .loc 1 5568 5
- 11974 005a F868 ldr r0, [r7, #12]
- 11975 005c FFF7FEFF bl I2C_Flush_TXDR
- 11976 0060 12E1 b .L570
- 11977 .L569:
- 5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \
- 11978 .loc 1 5570 13
- 11979 0062 BB68 ldr r3, [r7, #8]
- 11980 0064 5B08 lsrs r3, r3, #1
- 11981 0066 03F00103 and r3, r3, #1
- 11982 .loc 1 5570 11
- 11983 006a 002B cmp r3, #0
- 11984 006c 0FD0 beq .L571
- 5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
- 11985 .loc 1 5571 13 discriminator 1
- 11986 006e 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 310
- 11987 0070 5B08 lsrs r3, r3, #1
- 11988 0072 03F00103 and r3, r3, #1
- 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
- 11989 .loc 1 5570 62 discriminator 1
- 11990 0076 002B cmp r3, #0
- 11991 0078 09D0 beq .L571
- 5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
- 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
- 11992 .loc 1 5574 9
- 11993 007a FB68 ldr r3, [r7, #12]
- 11994 007c 1B68 ldr r3, [r3]
- 11995 .loc 1 5574 32
- 11996 007e FA68 ldr r2, [r7, #12]
- 11997 0080 126D ldr r2, [r2, #80]
- 11998 .loc 1 5574 26
- 11999 0082 9A62 str r2, [r3, #40]
- 5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
- 5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
- 12000 .loc 1 5577 22
- 12001 0084 FB68 ldr r3, [r7, #12]
- 12002 0086 4FF0FF32 mov r2, #-1
- 12003 008a 1A65 str r2, [r3, #80]
- 12004 008c FCE0 b .L570
- 12005 .L571:
- 5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
- 12006 .loc 1 5579 13
- 12007 008e BB68 ldr r3, [r7, #8]
- 12008 0090 DB09 lsrs r3, r3, #7
- 12009 0092 03F00103 and r3, r3, #1
- 12010 .loc 1 5579 11
- 12011 0096 002B cmp r3, #0
- 12012 0098 6ED0 beq .L572
- 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 12013 .loc 1 5580 13 discriminator 1
- 12014 009a 7B68 ldr r3, [r7, #4]
- 12015 009c 9B09 lsrs r3, r3, #6
- 12016 009e 03F00103 and r3, r3, #1
- 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 12017 .loc 1 5579 61 discriminator 1
- 12018 00a2 002B cmp r3, #0
- 12019 00a4 68D0 beq .L572
- 5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
- 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 12020 .loc 1 5583 5
- 12021 00a6 0121 movs r1, #1
- 12022 00a8 F868 ldr r0, [r7, #12]
- 12023 00aa FFF7FEFF bl I2C_Disable_IRQ
- 5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error interrupt */
- 5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
- 12024 .loc 1 5586 5
- 12025 00ae 1021 movs r1, #16
- 12026 00b0 F868 ldr r0, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 311
- 12027 00b2 FFF7FEFF bl I2C_Enable_IRQ
- 5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
- 12028 .loc 1 5588 13
- 12029 00b6 FB68 ldr r3, [r7, #12]
- 12030 00b8 5B8D ldrh r3, [r3, #42] @ movhi
- 12031 00ba 9BB2 uxth r3, r3
- 12032 .loc 1 5588 8
- 12033 00bc 002B cmp r3, #0
- 12034 00be 56D0 beq .L573
- 5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
- 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 12035 .loc 1 5591 15
- 12036 00c0 FB68 ldr r3, [r7, #12]
- 12037 00c2 5B8D ldrh r3, [r3, #42] @ movhi
- 12038 00c4 9BB2 uxth r3, r3
- 12039 .loc 1 5591 10
- 12040 00c6 FF2B cmp r3, #255
- 12041 00c8 1ED9 bls .L574
- 5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 12042 .loc 1 5594 13
- 12043 00ca FB68 ldr r3, [r7, #12]
- 12044 00cc 1B68 ldr r3, [r3]
- 12045 00ce 9B69 ldr r3, [r3, #24]
- 12046 00d0 1B0C lsrs r3, r3, #16
- 12047 00d2 DBB2 uxtb r3, r3
- 12048 00d4 03F00103 and r3, r3, #1
- 12049 00d8 DBB2 uxtb r3, r3
- 12050 .loc 1 5594 12
- 12051 00da 012B cmp r3, #1
- 12052 00dc 03D1 bne .L575
- 5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 12053 .loc 1 5596 26
- 12054 00de FB68 ldr r3, [r7, #12]
- 12055 00e0 0122 movs r2, #1
- 12056 00e2 1A85 strh r2, [r3, #40] @ movhi
- 12057 00e4 02E0 b .L576
- 12058 .L575:
- 5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 12059 .loc 1 5600 26
- 12060 00e6 FB68 ldr r3, [r7, #12]
- 12061 00e8 FF22 movs r2, #255
- 12062 00ea 1A85 strh r2, [r3, #40] @ movhi
- 12063 .L576:
- 5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 12064 .loc 1 5602 48
- 12065 00ec FB68 ldr r3, [r7, #12]
- 12066 00ee DB6C ldr r3, [r3, #76]
- 12067 .loc 1 5602 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 312
- 12068 00f0 99B2 uxth r1, r3
- 12069 .loc 1 5602 75
- 12070 00f2 FB68 ldr r3, [r7, #12]
- 12071 00f4 1B8D ldrh r3, [r3, #40]
- 12072 .loc 1 5602 9
- 12073 00f6 DAB2 uxtb r2, r3
- 12074 00f8 0023 movs r3, #0
- 12075 00fa 0093 str r3, [sp]
- 12076 00fc 4FF08073 mov r3, #16777216
- 12077 0100 F868 ldr r0, [r7, #12]
- 12078 0102 FFF7FEFF bl I2C_TransferConfig
- 12079 0106 11E0 b .L577
- 12080 .L574:
- 5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
- 5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 12081 .loc 1 5607 30
- 12082 0108 FB68 ldr r3, [r7, #12]
- 12083 010a 5B8D ldrh r3, [r3, #42] @ movhi
- 12084 010c 9AB2 uxth r2, r3
- 12085 .loc 1 5607 24
- 12086 010e FB68 ldr r3, [r7, #12]
- 12087 0110 1A85 strh r2, [r3, #40] @ movhi
- 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 12088 .loc 1 5608 48
- 12089 0112 FB68 ldr r3, [r7, #12]
- 12090 0114 DB6C ldr r3, [r3, #76]
- 12091 .loc 1 5608 9
- 12092 0116 99B2 uxth r1, r3
- 12093 .loc 1 5608 75
- 12094 0118 FB68 ldr r3, [r7, #12]
- 12095 011a 1B8D ldrh r3, [r3, #40]
- 12096 .loc 1 5608 9
- 12097 011c DAB2 uxtb r2, r3
- 12098 011e 0023 movs r3, #0
- 12099 0120 0093 str r3, [sp]
- 12100 0122 4FF00073 mov r3, #33554432
- 12101 0126 F868 ldr r0, [r7, #12]
- 12102 0128 FFF7FEFF bl I2C_TransferConfig
- 12103 .L577:
- 5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
- 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 12104 .loc 1 5613 23
- 12105 012c FB68 ldr r3, [r7, #12]
- 12106 012e 5B8D ldrh r3, [r3, #42] @ movhi
- 12107 0130 9AB2 uxth r2, r3
- 12108 .loc 1 5613 30
- 12109 0132 FB68 ldr r3, [r7, #12]
- 12110 0134 1B8D ldrh r3, [r3, #40]
- 12111 .loc 1 5613 23
- 12112 0136 D31A subs r3, r2, r3
- 12113 0138 9AB2 uxth r2, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 313
- 12114 013a FB68 ldr r3, [r7, #12]
- 12115 013c 5A85 strh r2, [r3, #42] @ movhi
- 5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 12116 .loc 1 5616 15
- 12117 013e FB68 ldr r3, [r7, #12]
- 12118 0140 93F84130 ldrb r3, [r3, #65]
- 12119 0144 DBB2 uxtb r3, r3
- 12120 .loc 1 5616 10
- 12121 0146 222B cmp r3, #34
- 12122 0148 08D1 bne .L578
- 5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 12123 .loc 1 5618 13
- 12124 014a FB68 ldr r3, [r7, #12]
- 12125 014c 1B68 ldr r3, [r3]
- 12126 .loc 1 5618 29
- 12127 014e 1A68 ldr r2, [r3]
- 12128 .loc 1 5618 13
- 12129 0150 FB68 ldr r3, [r7, #12]
- 12130 0152 1B68 ldr r3, [r3]
- 12131 .loc 1 5618 29
- 12132 0154 42F40042 orr r2, r2, #32768
- 12133 0158 1A60 str r2, [r3]
- 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12134 .loc 1 5588 8
- 12135 015a 95E0 b .L570
- 12136 .L578:
- 5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 12137 .loc 1 5622 13
- 12138 015c FB68 ldr r3, [r7, #12]
- 12139 015e 1B68 ldr r3, [r3]
- 12140 .loc 1 5622 29
- 12141 0160 1A68 ldr r2, [r3]
- 12142 .loc 1 5622 13
- 12143 0162 FB68 ldr r3, [r7, #12]
- 12144 0164 1B68 ldr r3, [r3]
- 12145 .loc 1 5622 29
- 12146 0166 42F48042 orr r2, r2, #16384
- 12147 016a 1A60 str r2, [r3]
- 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12148 .loc 1 5588 8
- 12149 016c 8CE0 b .L570
- 12150 .L573:
- 5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
- 5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
- 12151 .loc 1 5629 7
- 12152 016e 4021 movs r1, #64
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 314
- 12153 0170 F868 ldr r0, [r7, #12]
- 12154 0172 FFF7FEFF bl I2C_ITError
- 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12155 .loc 1 5588 8
- 12156 0176 87E0 b .L570
- 12157 .L572:
- 5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
- 12158 .loc 1 5632 13
- 12159 0178 BB68 ldr r3, [r7, #8]
- 12160 017a 9B09 lsrs r3, r3, #6
- 12161 017c 03F00103 and r3, r3, #1
- 12162 .loc 1 5632 11
- 12163 0180 002B cmp r3, #0
- 12164 0182 71D0 beq .L580
- 5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 12165 .loc 1 5633 13 discriminator 1
- 12166 0184 7B68 ldr r3, [r7, #4]
- 12167 0186 9B09 lsrs r3, r3, #6
- 12168 0188 03F00103 and r3, r3, #1
- 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
- 12169 .loc 1 5632 60 discriminator 1
- 12170 018c 002B cmp r3, #0
- 12171 018e 6BD0 beq .L580
- 5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
- 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 12172 .loc 1 5636 5
- 12173 0190 0121 movs r1, #1
- 12174 0192 F868 ldr r0, [r7, #12]
- 12175 0194 FFF7FEFF bl I2C_Disable_IRQ
- 5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */
- 5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
- 12176 .loc 1 5639 5
- 12177 0198 1021 movs r1, #16
- 12178 019a F868 ldr r0, [r7, #12]
- 12179 019c FFF7FEFF bl I2C_Enable_IRQ
- 5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 12180 .loc 1 5641 13
- 12181 01a0 FB68 ldr r3, [r7, #12]
- 12182 01a2 93F84130 ldrb r3, [r3, #65]
- 12183 01a6 DBB2 uxtb r3, r3
- 12184 .loc 1 5641 8
- 12185 01a8 222B cmp r3, #34
- 12186 01aa 01D1 bne .L581
- 5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
- 12187 .loc 1 5643 17
- 12188 01ac 2D4B ldr r3, .L588+4
- 12189 01ae 7B61 str r3, [r7, #20]
- 12190 .L581:
- 5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 315
- 12191 .loc 1 5646 13
- 12192 01b0 FB68 ldr r3, [r7, #12]
- 12193 01b2 5B8D ldrh r3, [r3, #42] @ movhi
- 12194 01b4 9BB2 uxth r3, r3
- 12195 .loc 1 5646 8
- 12196 01b6 FF2B cmp r3, #255
- 12197 01b8 1ED9 bls .L582
- 5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 12198 .loc 1 5649 11
- 12199 01ba FB68 ldr r3, [r7, #12]
- 12200 01bc 1B68 ldr r3, [r3]
- 12201 01be 9B69 ldr r3, [r3, #24]
- 12202 01c0 1B0C lsrs r3, r3, #16
- 12203 01c2 DBB2 uxtb r3, r3
- 12204 01c4 03F00103 and r3, r3, #1
- 12205 01c8 DBB2 uxtb r3, r3
- 12206 .loc 1 5649 10
- 12207 01ca 012B cmp r3, #1
- 12208 01cc 03D1 bne .L583
- 5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 12209 .loc 1 5651 24
- 12210 01ce FB68 ldr r3, [r7, #12]
- 12211 01d0 0122 movs r2, #1
- 12212 01d2 1A85 strh r2, [r3, #40] @ movhi
- 12213 01d4 02E0 b .L584
- 12214 .L583:
- 5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 12215 .loc 1 5655 24
- 12216 01d6 FB68 ldr r3, [r7, #12]
- 12217 01d8 FF22 movs r2, #255
- 12218 01da 1A85 strh r2, [r3, #40] @ movhi
- 12219 .L584:
- 5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 */
- 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 12220 .loc 1 5659 46
- 12221 01dc FB68 ldr r3, [r7, #12]
- 12222 01de DB6C ldr r3, [r3, #76]
- 12223 .loc 1 5659 7
- 12224 01e0 99B2 uxth r1, r3
- 12225 .loc 1 5659 73
- 12226 01e2 FB68 ldr r3, [r7, #12]
- 12227 01e4 1B8D ldrh r3, [r3, #40]
- 12228 .loc 1 5659 7
- 12229 01e6 DAB2 uxtb r2, r3
- 12230 01e8 7B69 ldr r3, [r7, #20]
- 12231 01ea 0093 str r3, [sp]
- 12232 01ec 4FF08073 mov r3, #16777216
- 12233 01f0 F868 ldr r0, [r7, #12]
- 12234 01f2 FFF7FEFF bl I2C_TransferConfig
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 316
- 12235 01f6 11E0 b .L585
- 12236 .L582:
- 5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
- 5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 12237 .loc 1 5664 28
- 12238 01f8 FB68 ldr r3, [r7, #12]
- 12239 01fa 5B8D ldrh r3, [r3, #42] @ movhi
- 12240 01fc 9AB2 uxth r2, r3
- 12241 .loc 1 5664 22
- 12242 01fe FB68 ldr r3, [r7, #12]
- 12243 0200 1A85 strh r2, [r3, #40] @ movhi
- 5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
- 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
- 12244 .loc 1 5667 46
- 12245 0202 FB68 ldr r3, [r7, #12]
- 12246 0204 DB6C ldr r3, [r3, #76]
- 12247 .loc 1 5667 7
- 12248 0206 99B2 uxth r1, r3
- 12249 .loc 1 5667 73
- 12250 0208 FB68 ldr r3, [r7, #12]
- 12251 020a 1B8D ldrh r3, [r3, #40]
- 12252 .loc 1 5667 7
- 12253 020c DAB2 uxtb r2, r3
- 12254 020e 7B69 ldr r3, [r7, #20]
- 12255 0210 0093 str r3, [sp]
- 12256 0212 4FF00073 mov r3, #33554432
- 12257 0216 F868 ldr r0, [r7, #12]
- 12258 0218 FFF7FEFF bl I2C_TransferConfig
- 12259 .L585:
- 5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
- 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
- 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
- 12260 .loc 1 5672 21
- 12261 021c FB68 ldr r3, [r7, #12]
- 12262 021e 5B8D ldrh r3, [r3, #42] @ movhi
- 12263 0220 9AB2 uxth r2, r3
- 12264 .loc 1 5672 28
- 12265 0222 FB68 ldr r3, [r7, #12]
- 12266 0224 1B8D ldrh r3, [r3, #40]
- 12267 .loc 1 5672 21
- 12268 0226 D31A subs r3, r2, r3
- 12269 0228 9AB2 uxth r2, r3
- 12270 022a FB68 ldr r3, [r7, #12]
- 12271 022c 5A85 strh r2, [r3, #42] @ movhi
- 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
- 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 12272 .loc 1 5675 13
- 12273 022e FB68 ldr r3, [r7, #12]
- 12274 0230 93F84130 ldrb r3, [r3, #65]
- 12275 0234 DBB2 uxtb r3, r3
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 317
- 12276 .loc 1 5675 8
- 12277 0236 222B cmp r3, #34
- 12278 0238 08D1 bne .L586
- 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
- 12279 .loc 1 5677 11
- 12280 023a FB68 ldr r3, [r7, #12]
- 12281 023c 1B68 ldr r3, [r3]
- 12282 .loc 1 5677 27
- 12283 023e 1A68 ldr r2, [r3]
- 12284 .loc 1 5677 11
- 12285 0240 FB68 ldr r3, [r7, #12]
- 12286 0242 1B68 ldr r3, [r3]
- 12287 .loc 1 5677 27
- 12288 0244 42F40042 orr r2, r2, #32768
- 12289 0248 1A60 str r2, [r3]
- 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12290 .loc 1 5675 8
- 12291 024a 1DE0 b .L570
- 12292 .L586:
- 5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
- 12293 .loc 1 5681 11
- 12294 024c FB68 ldr r3, [r7, #12]
- 12295 024e 1B68 ldr r3, [r3]
- 12296 .loc 1 5681 27
- 12297 0250 1A68 ldr r2, [r3]
- 12298 .loc 1 5681 11
- 12299 0252 FB68 ldr r3, [r7, #12]
- 12300 0254 1B68 ldr r3, [r3]
- 12301 .loc 1 5681 27
- 12302 0256 42F48042 orr r2, r2, #16384
- 12303 025a 1A60 str r2, [r3]
- 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12304 .loc 1 5675 8
- 12305 025c 14E0 b .L570
- 12306 .L589:
- 12307 025e 00BF .align 2
- 12308 .L588:
- 12309 0260 00200080 .word -2147475456
- 12310 0264 00240080 .word -2147474432
- 12311 .L580:
- 5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
- 12312 .loc 1 5684 13
- 12313 0268 BB68 ldr r3, [r7, #8]
- 12314 026a 5B09 lsrs r3, r3, #5
- 12315 026c 03F00103 and r3, r3, #1
- 12316 .loc 1 5684 11
- 12317 0270 002B cmp r3, #0
- 12318 0272 09D0 beq .L570
- 5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 12319 .loc 1 5685 13 discriminator 1
- 12320 0274 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 318
- 12321 0276 5B09 lsrs r3, r3, #5
- 12322 0278 03F00103 and r3, r3, #1
- 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 12323 .loc 1 5684 63 discriminator 1
- 12324 027c 002B cmp r3, #0
- 12325 027e 03D0 beq .L570
- 5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
- 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
- 12326 .loc 1 5688 5
- 12327 0280 B968 ldr r1, [r7, #8]
- 12328 0282 F868 ldr r0, [r7, #12]
- 12329 0284 FFF7FEFF bl I2C_ITMasterCplt
- 12330 .L570:
- 5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 12331 .loc 1 5696 3
- 12332 0288 FB68 ldr r3, [r7, #12]
- 12333 028a 0022 movs r2, #0
- 12334 028c 83F84020 strb r2, [r3, #64]
- 5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 12335 .loc 1 5698 10
- 12336 0290 0023 movs r3, #0
- 12337 .L568:
- 5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 12338 .loc 1 5699 1
- 12339 0292 1846 mov r0, r3
- 12340 0294 1837 adds r7, r7, #24
- 12341 .LCFI283:
- 12342 .cfi_def_cfa_offset 8
- 12343 0296 BD46 mov sp, r7
- 12344 .LCFI284:
- 12345 .cfi_def_cfa_register 13
- 12346 @ sp needed
- 12347 0298 80BD pop {r7, pc}
- 12348 .cfi_endproc
- 12349 .LFE183:
- 12351 029a 00BF .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
- 12352 .align 1
- 12353 .syntax unified
- 12354 .thumb
- 12355 .thumb_func
- 12357 I2C_Slave_ISR_DMA:
- 12358 .LFB184:
- 5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
- 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 319
- 5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
- 5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
- 5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
- 5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12359 .loc 1 5711 1
- 12360 .cfi_startproc
- 12361 @ args = 0, pretend = 0, frame = 32
- 12362 @ frame_needed = 1, uses_anonymous_args = 0
- 12363 0000 80B5 push {r7, lr}
- 12364 .LCFI285:
- 12365 .cfi_def_cfa_offset 8
- 12366 .cfi_offset 7, -8
- 12367 .cfi_offset 14, -4
- 12368 0002 88B0 sub sp, sp, #32
- 12369 .LCFI286:
- 12370 .cfi_def_cfa_offset 40
- 12371 0004 00AF add r7, sp, #0
- 12372 .LCFI287:
- 12373 .cfi_def_cfa_register 7
- 12374 0006 F860 str r0, [r7, #12]
- 12375 0008 B960 str r1, [r7, #8]
- 12376 000a 7A60 str r2, [r7, #4]
- 5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
- 12377 .loc 1 5712 12
- 12378 000c FB68 ldr r3, [r7, #12]
- 12379 000e DB6A ldr r3, [r3, #44]
- 12380 0010 BB61 str r3, [r7, #24]
- 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
- 12381 .loc 1 5713 12
- 12382 0012 0023 movs r3, #0
- 12383 0014 FB61 str r3, [r7, #28]
- 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
- 5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
- 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
- 12384 .loc 1 5717 3
- 12385 0016 FB68 ldr r3, [r7, #12]
- 12386 0018 93F84030 ldrb r3, [r3, #64] @ zero_extendqisi2
- 12387 001c 012B cmp r3, #1
- 12388 001e 01D1 bne .L591
- 12389 .loc 1 5717 3 is_stmt 0 discriminator 1
- 12390 0020 0223 movs r3, #2
- 12391 0022 CAE0 b .L592
- 12392 .L591:
- 12393 .loc 1 5717 3 discriminator 2
- 12394 0024 FB68 ldr r3, [r7, #12]
- 12395 0026 0122 movs r2, #1
- 12396 0028 83F84020 strb r2, [r3, #64]
- 5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
- 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
- 12397 .loc 1 5720 8 is_stmt 1 discriminator 2
- 12398 002c BB68 ldr r3, [r7, #8]
- 12399 002e 5B09 lsrs r3, r3, #5
- 12400 0030 03F00103 and r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 320
- 12401 .loc 1 5720 6 discriminator 2
- 12402 0034 002B cmp r3, #0
- 12403 0036 0AD0 beq .L593
- 5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 12404 .loc 1 5721 8 discriminator 1
- 12405 0038 7B68 ldr r3, [r7, #4]
- 12406 003a 5B09 lsrs r3, r3, #5
- 12407 003c 03F00103 and r3, r3, #1
- 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
- 12408 .loc 1 5720 58 discriminator 1
- 12409 0040 002B cmp r3, #0
- 12410 0042 04D0 beq .L593
- 5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
- 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
- 12411 .loc 1 5724 5
- 12412 0044 B968 ldr r1, [r7, #8]
- 12413 0046 F868 ldr r0, [r7, #12]
- 12414 0048 FFF7FEFF bl I2C_ITSlaveCplt
- 12415 004c B0E0 b .L594
- 12416 .L593:
- 5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
- 12417 .loc 1 5726 13
- 12418 004e BB68 ldr r3, [r7, #8]
- 12419 0050 1B09 lsrs r3, r3, #4
- 12420 0052 03F00103 and r3, r3, #1
- 12421 .loc 1 5726 11
- 12422 0056 002B cmp r3, #0
- 12423 0058 00F09A80 beq .L595
- 5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 12424 .loc 1 5727 13 discriminator 1
- 12425 005c 7B68 ldr r3, [r7, #4]
- 12426 005e 1B09 lsrs r3, r3, #4
- 12427 0060 03F00103 and r3, r3, #1
- 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
- 12428 .loc 1 5726 60 discriminator 1
- 12429 0064 002B cmp r3, #0
- 12430 0066 00F09380 beq .L595
- 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
- 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 */
- 5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
- 5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
- 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
- 12431 .loc 1 5733 10
- 12432 006a 7B68 ldr r3, [r7, #4]
- 12433 006c 9B0B lsrs r3, r3, #14
- 12434 006e 03F00103 and r3, r3, #1
- 12435 .loc 1 5733 8
- 12436 0072 002B cmp r3, #0
- 12437 0074 05D1 bne .L596
- 5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
- 12438 .loc 1 5734 10 discriminator 1
- 12439 0076 7B68 ldr r3, [r7, #4]
- 12440 0078 DB0B lsrs r3, r3, #15
- 12441 007a 03F00103 and r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 321
- 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
- 12442 .loc 1 5733 68 discriminator 1
- 12443 007e 002B cmp r3, #0
- 12444 0080 7FD0 beq .L597
- 12445 .L596:
- 5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
- 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 12446 .loc 1 5737 15
- 12447 0082 FB68 ldr r3, [r7, #12]
- 12448 0084 DB6B ldr r3, [r3, #60]
- 12449 .loc 1 5737 10
- 12450 0086 002B cmp r3, #0
- 12451 0088 0DD0 beq .L598
- 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
- 12452 .loc 1 5739 13
- 12453 008a 7B68 ldr r3, [r7, #4]
- 12454 008c DB0B lsrs r3, r3, #15
- 12455 008e 03F00103 and r3, r3, #1
- 12456 .loc 1 5739 12
- 12457 0092 002B cmp r3, #0
- 12458 0094 07D0 beq .L598
- 5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
- 12459 .loc 1 5741 15
- 12460 0096 FB68 ldr r3, [r7, #12]
- 12461 0098 DB6B ldr r3, [r3, #60]
- 12462 009a 1B68 ldr r3, [r3]
- 12463 009c 5B68 ldr r3, [r3, #4]
- 12464 .loc 1 5741 14
- 12465 009e 002B cmp r3, #0
- 12466 00a0 01D1 bne .L598
- 5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
- 12467 .loc 1 5743 26
- 12468 00a2 0123 movs r3, #1
- 12469 00a4 FB61 str r3, [r7, #28]
- 12470 .L598:
- 5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
- 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 12471 .loc 1 5749 15
- 12472 00a6 FB68 ldr r3, [r7, #12]
- 12473 00a8 9B6B ldr r3, [r3, #56]
- 12474 .loc 1 5749 10
- 12475 00aa 002B cmp r3, #0
- 12476 00ac 0DD0 beq .L599
- 5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
- 12477 .loc 1 5751 13
- 12478 00ae 7B68 ldr r3, [r7, #4]
- 12479 00b0 9B0B lsrs r3, r3, #14
- 12480 00b2 03F00103 and r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 322
- 12481 .loc 1 5751 12
- 12482 00b6 002B cmp r3, #0
- 12483 00b8 07D0 beq .L599
- 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
- 12484 .loc 1 5753 15
- 12485 00ba FB68 ldr r3, [r7, #12]
- 12486 00bc 9B6B ldr r3, [r3, #56]
- 12487 00be 1B68 ldr r3, [r3]
- 12488 00c0 5B68 ldr r3, [r3, #4]
- 12489 .loc 1 5753 14
- 12490 00c2 002B cmp r3, #0
- 12491 00c4 01D1 bne .L599
- 5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
- 12492 .loc 1 5755 26
- 12493 00c6 0123 movs r3, #1
- 12494 00c8 FB61 str r3, [r7, #28]
- 12495 .L599:
- 5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U)
- 12496 .loc 1 5760 10
- 12497 00ca FB69 ldr r3, [r7, #28]
- 12498 00cc 012B cmp r3, #1
- 12499 00ce 28D1 bne .L600
- 5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
- 12500 .loc 1 5762 18
- 12501 00d0 FB68 ldr r3, [r7, #12]
- 12502 00d2 93F84130 ldrb r3, [r3, #65]
- 12503 00d6 DBB2 uxtb r3, r3
- 12504 .loc 1 5762 12
- 12505 00d8 282B cmp r3, #40
- 12506 00da 08D1 bne .L601
- 12507 .loc 1 5762 51 discriminator 1
- 12508 00dc BB69 ldr r3, [r7, #24]
- 12509 00de B3F1007F cmp r3, #33554432
- 12510 00e2 04D1 bne .L601
- 5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
- 5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
- 5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
- 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
- 12511 .loc 1 5767 11
- 12512 00e4 B968 ldr r1, [r7, #8]
- 12513 00e6 F868 ldr r0, [r7, #12]
- 12514 00e8 FFF7FEFF bl I2C_ITListenCplt
- 12515 00ec 48E0 b .L604
- 12516 .L601:
- 5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 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
- 12517 .loc 1 5769 23
- 12518 00ee FB68 ldr r3, [r7, #12]
- 12519 00f0 93F84130 ldrb r3, [r3, #65]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 323
- 12520 00f4 DBB2 uxtb r3, r3
- 12521 .loc 1 5769 17
- 12522 00f6 292B cmp r3, #41
- 12523 00f8 0ED1 bne .L603
- 12524 .loc 1 5769 64 discriminator 1
- 12525 00fa BB69 ldr r3, [r7, #24]
- 12526 00fc 13F5803F cmn r3, #65536
- 12527 0100 0AD0 beq .L603
- 5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 12528 .loc 1 5772 11
- 12529 0102 FB68 ldr r3, [r7, #12]
- 12530 0104 1B68 ldr r3, [r3]
- 12531 0106 1022 movs r2, #16
- 12532 0108 DA61 str r2, [r3, #28]
- 5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 12533 .loc 1 5775 11
- 12534 010a F868 ldr r0, [r7, #12]
- 12535 010c FFF7FEFF bl I2C_Flush_TXDR
- 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
- 5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- 5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 12536 .loc 1 5779 11
- 12537 0110 F868 ldr r0, [r7, #12]
- 12538 0112 FFF7FEFF bl I2C_ITSlaveSeqCplt
- 12539 0116 33E0 b .L604
- 12540 .L603:
- 5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 12541 .loc 1 5784 11
- 12542 0118 FB68 ldr r3, [r7, #12]
- 12543 011a 1B68 ldr r3, [r3]
- 12544 011c 1022 movs r2, #16
- 12545 011e DA61 str r2, [r3, #28]
- 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12546 .loc 1 5760 10
- 12547 0120 34E0 b .L611
- 12548 .L600:
- 5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 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*/
- 5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 12549 .loc 1 5791 9
- 12550 0122 FB68 ldr r3, [r7, #12]
- 12551 0124 1B68 ldr r3, [r3]
- 12552 0126 1022 movs r2, #16
- 12553 0128 DA61 str r2, [r3, #28]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 324
- 5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
- 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 12554 .loc 1 5794 25
- 12555 012a FB68 ldr r3, [r7, #12]
- 12556 012c 5B6C ldr r3, [r3, #68]
- 12557 012e 43F00402 orr r2, r3, #4
- 12558 0132 FB68 ldr r3, [r7, #12]
- 12559 0134 5A64 str r2, [r3, #68]
- 5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
- 5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State;
- 12560 .loc 1 5797 18
- 12561 0136 FB68 ldr r3, [r7, #12]
- 12562 0138 93F84130 ldrb r3, [r3, #65]
- 12563 013c FB75 strb r3, [r7, #23]
- 5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
- 12564 .loc 1 5799 12
- 12565 013e BB69 ldr r3, [r7, #24]
- 12566 0140 002B cmp r3, #0
- 12567 0142 03D0 beq .L605
- 12568 .loc 1 5799 45 discriminator 1
- 12569 0144 BB69 ldr r3, [r7, #24]
- 12570 0146 B3F1807F cmp r3, #16777216
- 12571 014a 1FD1 bne .L611
- 12572 .L605:
- 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
- 12573 .loc 1 5801 14
- 12574 014c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 12575 014e 212B cmp r3, #33
- 12576 0150 02D0 beq .L606
- 12577 .loc 1 5801 51 discriminator 1
- 12578 0152 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 12579 0154 292B cmp r3, #41
- 12580 0156 03D1 bne .L607
- 12581 .L606:
- 5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
- 12582 .loc 1 5803 33
- 12583 0158 FB68 ldr r3, [r7, #12]
- 12584 015a 2122 movs r2, #33
- 12585 015c 1A63 str r2, [r3, #48]
- 12586 015e 08E0 b .L608
- 12587 .L607:
- 5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 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
- 12588 .loc 1 5805 19
- 12589 0160 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 12590 0162 222B cmp r3, #34
- 12591 0164 02D0 beq .L609
- 12592 .loc 1 5805 56 discriminator 1
- 12593 0166 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 12594 0168 2A2B cmp r3, #42
- 12595 016a 02D1 bne .L608
- 12596 .L609:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 325
- 5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
- 12597 .loc 1 5807 33
- 12598 016c FB68 ldr r3, [r7, #12]
- 12599 016e 2222 movs r2, #34
- 12600 0170 1A63 str r2, [r3, #48]
- 12601 .L608:
- 5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
- 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
- 12602 .loc 1 5815 11
- 12603 0172 FB68 ldr r3, [r7, #12]
- 12604 0174 5B6C ldr r3, [r3, #68]
- 12605 0176 1946 mov r1, r3
- 12606 0178 F868 ldr r0, [r7, #12]
- 12607 017a FFF7FEFF bl I2C_ITError
- 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12608 .loc 1 5760 10
- 12609 017e 05E0 b .L611
- 12610 .L604:
- 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12611 .loc 1 5760 10 is_stmt 0 discriminator 1
- 12612 0180 04E0 b .L611
- 12613 .L597:
- 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
- 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 12614 .loc 1 5822 7 is_stmt 1
- 12615 0182 FB68 ldr r3, [r7, #12]
- 12616 0184 1B68 ldr r3, [r3]
- 12617 0186 1022 movs r2, #16
- 12618 0188 DA61 str r2, [r3, #28]
- 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
- 12619 .loc 1 5733 8
- 12620 018a 11E0 b .L594
- 12621 .L611:
- 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12622 .loc 1 5760 10
- 12623 018c 00BF nop
- 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
- 12624 .loc 1 5733 8
- 12625 018e 0FE0 b .L594
- 12626 .L595:
- 5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
- 12627 .loc 1 5825 13
- 12628 0190 BB68 ldr r3, [r7, #8]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 326
- 12629 0192 DB08 lsrs r3, r3, #3
- 12630 0194 03F00103 and r3, r3, #1
- 12631 .loc 1 5825 11
- 12632 0198 002B cmp r3, #0
- 12633 019a 09D0 beq .L594
- 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
- 12634 .loc 1 5826 13 discriminator 1
- 12635 019c 7B68 ldr r3, [r7, #4]
- 12636 019e DB08 lsrs r3, r3, #3
- 12637 01a0 03F00103 and r3, r3, #1
- 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
- 12638 .loc 1 5825 62 discriminator 1
- 12639 01a4 002B cmp r3, #0
- 12640 01a6 03D0 beq .L594
- 5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
- 12641 .loc 1 5828 5
- 12642 01a8 B968 ldr r1, [r7, #8]
- 12643 01aa F868 ldr r0, [r7, #12]
- 12644 01ac FFF7FEFF bl I2C_ITAddrCplt
- 12645 .L594:
- 5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 12646 .loc 1 5836 3
- 12647 01b0 FB68 ldr r3, [r7, #12]
- 12648 01b2 0022 movs r2, #0
- 12649 01b4 83F84020 strb r2, [r3, #64]
- 5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 12650 .loc 1 5838 10
- 12651 01b8 0023 movs r3, #0
- 12652 .L592:
- 5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 12653 .loc 1 5839 1
- 12654 01ba 1846 mov r0, r3
- 12655 01bc 2037 adds r7, r7, #32
- 12656 .LCFI288:
- 12657 .cfi_def_cfa_offset 8
- 12658 01be BD46 mov sp, r7
- 12659 .LCFI289:
- 12660 .cfi_def_cfa_register 13
- 12661 @ sp needed
- 12662 01c0 80BD pop {r7, pc}
- 12663 .cfi_endproc
- 12664 .LFE184:
- 12666 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
- 12667 .align 1
- 12668 .syntax unified
- 12669 .thumb
- 12670 .thumb_func
- 12672 I2C_RequestMemoryWrite:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 327
- 12673 .LFB185:
- 5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
- 5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
- 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
- 5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
- 5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12674 .loc 1 5856 1
- 12675 .cfi_startproc
- 12676 @ args = 8, pretend = 0, frame = 16
- 12677 @ frame_needed = 1, uses_anonymous_args = 0
- 12678 0000 80B5 push {r7, lr}
- 12679 .LCFI290:
- 12680 .cfi_def_cfa_offset 8
- 12681 .cfi_offset 7, -8
- 12682 .cfi_offset 14, -4
- 12683 0002 86B0 sub sp, sp, #24
- 12684 .LCFI291:
- 12685 .cfi_def_cfa_offset 32
- 12686 0004 02AF add r7, sp, #8
- 12687 .LCFI292:
- 12688 .cfi_def_cfa 7, 24
- 12689 0006 F860 str r0, [r7, #12]
- 12690 0008 0846 mov r0, r1
- 12691 000a 1146 mov r1, r2
- 12692 000c 1A46 mov r2, r3
- 12693 000e 0346 mov r3, r0 @ movhi
- 12694 0010 7B81 strh r3, [r7, #10] @ movhi
- 12695 0012 0B46 mov r3, r1 @ movhi
- 12696 0014 3B81 strh r3, [r7, #8] @ movhi
- 12697 0016 1346 mov r3, r2 @ movhi
- 12698 0018 FB80 strh r3, [r7, #6] @ movhi
- 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
- 12699 .loc 1 5857 3
- 12700 001a FB88 ldrh r3, [r7, #6] @ movhi
- 12701 001c DAB2 uxtb r2, r3
- 12702 001e 7989 ldrh r1, [r7, #10]
- 12703 0020 204B ldr r3, .L619
- 12704 0022 0093 str r3, [sp]
- 12705 0024 4FF08073 mov r3, #16777216
- 12706 0028 F868 ldr r0, [r7, #12]
- 12707 002a FFF7FEFF bl I2C_TransferConfig
- 5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
- 12708 .loc 1 5860 7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 328
- 12709 002e FA69 ldr r2, [r7, #28]
- 12710 0030 B969 ldr r1, [r7, #24]
- 12711 0032 F868 ldr r0, [r7, #12]
- 12712 0034 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 12713 0038 0346 mov r3, r0
- 12714 .loc 1 5860 6
- 12715 003a 002B cmp r3, #0
- 12716 003c 01D0 beq .L613
- 5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 12717 .loc 1 5862 12
- 12718 003e 0123 movs r3, #1
- 12719 0040 2CE0 b .L614
- 12720 .L613:
- 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
- 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
- 12721 .loc 1 5866 6
- 12722 0042 FB88 ldrh r3, [r7, #6]
- 12723 0044 012B cmp r3, #1
- 12724 0046 05D1 bne .L615
- 5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
- 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 12725 .loc 1 5869 28
- 12726 0048 3B89 ldrh r3, [r7, #8] @ movhi
- 12727 004a DAB2 uxtb r2, r3
- 12728 .loc 1 5869 9
- 12729 004c FB68 ldr r3, [r7, #12]
- 12730 004e 1B68 ldr r3, [r3]
- 12731 .loc 1 5869 26
- 12732 0050 9A62 str r2, [r3, #40]
- 12733 0052 15E0 b .L616
- 12734 .L615:
- 5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
- 5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
- 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
- 12735 .loc 1 5875 28
- 12736 0054 3B89 ldrh r3, [r7, #8]
- 12737 0056 1B0A lsrs r3, r3, #8
- 12738 0058 9BB2 uxth r3, r3
- 12739 005a DAB2 uxtb r2, r3
- 12740 .loc 1 5875 9
- 12741 005c FB68 ldr r3, [r7, #12]
- 12742 005e 1B68 ldr r3, [r3]
- 12743 .loc 1 5875 26
- 12744 0060 9A62 str r2, [r3, #40]
- 5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
- 12745 .loc 1 5878 9
- 12746 0062 FA69 ldr r2, [r7, #28]
- 12747 0064 B969 ldr r1, [r7, #24]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 329
- 12748 0066 F868 ldr r0, [r7, #12]
- 12749 0068 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 12750 006c 0346 mov r3, r0
- 12751 .loc 1 5878 8
- 12752 006e 002B cmp r3, #0
- 12753 0070 01D0 beq .L617
- 5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 12754 .loc 1 5880 14
- 12755 0072 0123 movs r3, #1
- 12756 0074 12E0 b .L614
- 12757 .L617:
- 5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
- 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 12758 .loc 1 5884 28
- 12759 0076 3B89 ldrh r3, [r7, #8] @ movhi
- 12760 0078 DAB2 uxtb r2, r3
- 12761 .loc 1 5884 9
- 12762 007a FB68 ldr r3, [r7, #12]
- 12763 007c 1B68 ldr r3, [r3]
- 12764 .loc 1 5884 26
- 12765 007e 9A62 str r2, [r3, #40]
- 12766 .L616:
- 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
- 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
- 12767 .loc 1 5888 7
- 12768 0080 FB69 ldr r3, [r7, #28]
- 12769 0082 0093 str r3, [sp]
- 12770 0084 BB69 ldr r3, [r7, #24]
- 12771 0086 0022 movs r2, #0
- 12772 0088 8021 movs r1, #128
- 12773 008a F868 ldr r0, [r7, #12]
- 12774 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 12775 0090 0346 mov r3, r0
- 12776 .loc 1 5888 6
- 12777 0092 002B cmp r3, #0
- 12778 0094 01D0 beq .L618
- 5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 12779 .loc 1 5890 12
- 12780 0096 0123 movs r3, #1
- 12781 0098 00E0 b .L614
- 12782 .L618:
- 5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 12783 .loc 1 5893 10
- 12784 009a 0023 movs r3, #0
- 12785 .L614:
- 5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 12786 .loc 1 5894 1
- 12787 009c 1846 mov r0, r3
- 12788 009e 1037 adds r7, r7, #16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 330
- 12789 .LCFI293:
- 12790 .cfi_def_cfa_offset 8
- 12791 00a0 BD46 mov sp, r7
- 12792 .LCFI294:
- 12793 .cfi_def_cfa_register 13
- 12794 @ sp needed
- 12795 00a2 80BD pop {r7, pc}
- 12796 .L620:
- 12797 .align 2
- 12798 .L619:
- 12799 00a4 00200080 .word -2147475456
- 12800 .cfi_endproc
- 12801 .LFE185:
- 12803 .section .text.I2C_RequestMemoryRead,"ax",%progbits
- 12804 .align 1
- 12805 .syntax unified
- 12806 .thumb
- 12807 .thumb_func
- 12809 I2C_RequestMemoryRead:
- 12810 .LFB186:
- 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
- 5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
- 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
- 5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
- 5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
- 5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
- 5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
- 5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
- 5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12811 .loc 1 5911 1
- 12812 .cfi_startproc
- 12813 @ args = 8, pretend = 0, frame = 16
- 12814 @ frame_needed = 1, uses_anonymous_args = 0
- 12815 0000 80B5 push {r7, lr}
- 12816 .LCFI295:
- 12817 .cfi_def_cfa_offset 8
- 12818 .cfi_offset 7, -8
- 12819 .cfi_offset 14, -4
- 12820 0002 86B0 sub sp, sp, #24
- 12821 .LCFI296:
- 12822 .cfi_def_cfa_offset 32
- 12823 0004 02AF add r7, sp, #8
- 12824 .LCFI297:
- 12825 .cfi_def_cfa 7, 24
- 12826 0006 F860 str r0, [r7, #12]
- 12827 0008 0846 mov r0, r1
- 12828 000a 1146 mov r1, r2
- 12829 000c 1A46 mov r2, r3
- 12830 000e 0346 mov r3, r0 @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 331
- 12831 0010 7B81 strh r3, [r7, #10] @ movhi
- 12832 0012 0B46 mov r3, r1 @ movhi
- 12833 0014 3B81 strh r3, [r7, #8] @ movhi
- 12834 0016 1346 mov r3, r2 @ movhi
- 12835 0018 FB80 strh r3, [r7, #6] @ movhi
- 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
- 12836 .loc 1 5912 3
- 12837 001a FB88 ldrh r3, [r7, #6] @ movhi
- 12838 001c DAB2 uxtb r2, r3
- 12839 001e 7989 ldrh r1, [r7, #10]
- 12840 0020 204B ldr r3, .L628
- 12841 0022 0093 str r3, [sp]
- 12842 0024 0023 movs r3, #0
- 12843 0026 F868 ldr r0, [r7, #12]
- 12844 0028 FFF7FEFF bl I2C_TransferConfig
- 5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
- 12845 .loc 1 5915 7
- 12846 002c FA69 ldr r2, [r7, #28]
- 12847 002e B969 ldr r1, [r7, #24]
- 12848 0030 F868 ldr r0, [r7, #12]
- 12849 0032 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 12850 0036 0346 mov r3, r0
- 12851 .loc 1 5915 6
- 12852 0038 002B cmp r3, #0
- 12853 003a 01D0 beq .L622
- 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 12854 .loc 1 5917 12
- 12855 003c 0123 movs r3, #1
- 12856 003e 2CE0 b .L623
- 12857 .L622:
- 5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
- 5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
- 12858 .loc 1 5921 6
- 12859 0040 FB88 ldrh r3, [r7, #6]
- 12860 0042 012B cmp r3, #1
- 12861 0044 05D1 bne .L624
- 5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
- 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 12862 .loc 1 5924 28
- 12863 0046 3B89 ldrh r3, [r7, #8] @ movhi
- 12864 0048 DAB2 uxtb r2, r3
- 12865 .loc 1 5924 9
- 12866 004a FB68 ldr r3, [r7, #12]
- 12867 004c 1B68 ldr r3, [r3]
- 12868 .loc 1 5924 26
- 12869 004e 9A62 str r2, [r3, #40]
- 12870 0050 15E0 b .L625
- 12871 .L624:
- 5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
- 5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 332
- 5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
- 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
- 12872 .loc 1 5930 28
- 12873 0052 3B89 ldrh r3, [r7, #8]
- 12874 0054 1B0A lsrs r3, r3, #8
- 12875 0056 9BB2 uxth r3, r3
- 12876 0058 DAB2 uxtb r2, r3
- 12877 .loc 1 5930 9
- 12878 005a FB68 ldr r3, [r7, #12]
- 12879 005c 1B68 ldr r3, [r3]
- 12880 .loc 1 5930 26
- 12881 005e 9A62 str r2, [r3, #40]
- 5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
- 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
- 12882 .loc 1 5933 9
- 12883 0060 FA69 ldr r2, [r7, #28]
- 12884 0062 B969 ldr r1, [r7, #24]
- 12885 0064 F868 ldr r0, [r7, #12]
- 12886 0066 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
- 12887 006a 0346 mov r3, r0
- 12888 .loc 1 5933 8
- 12889 006c 002B cmp r3, #0
- 12890 006e 01D0 beq .L626
- 5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 12891 .loc 1 5935 14
- 12892 0070 0123 movs r3, #1
- 12893 0072 12E0 b .L623
- 12894 .L626:
- 5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
- 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
- 12895 .loc 1 5939 28
- 12896 0074 3B89 ldrh r3, [r7, #8] @ movhi
- 12897 0076 DAB2 uxtb r2, r3
- 12898 .loc 1 5939 9
- 12899 0078 FB68 ldr r3, [r7, #12]
- 12900 007a 1B68 ldr r3, [r3]
- 12901 .loc 1 5939 26
- 12902 007c 9A62 str r2, [r3, #40]
- 12903 .L625:
- 5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */
- 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
- 12904 .loc 1 5943 7
- 12905 007e FB69 ldr r3, [r7, #28]
- 12906 0080 0093 str r3, [sp]
- 12907 0082 BB69 ldr r3, [r7, #24]
- 12908 0084 0022 movs r2, #0
- 12909 0086 4021 movs r1, #64
- 12910 0088 F868 ldr r0, [r7, #12]
- 12911 008a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
- 12912 008e 0346 mov r3, r0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 333
- 12913 .loc 1 5943 6
- 12914 0090 002B cmp r3, #0
- 12915 0092 01D0 beq .L627
- 5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 12916 .loc 1 5945 12
- 12917 0094 0123 movs r3, #1
- 12918 0096 00E0 b .L623
- 12919 .L627:
- 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 12920 .loc 1 5948 10
- 12921 0098 0023 movs r3, #0
- 12922 .L623:
- 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 12923 .loc 1 5949 1
- 12924 009a 1846 mov r0, r3
- 12925 009c 1037 adds r7, r7, #16
- 12926 .LCFI298:
- 12927 .cfi_def_cfa_offset 8
- 12928 009e BD46 mov sp, r7
- 12929 .LCFI299:
- 12930 .cfi_def_cfa_register 13
- 12931 @ sp needed
- 12932 00a0 80BD pop {r7, pc}
- 12933 .L629:
- 12934 00a2 00BF .align 2
- 12935 .L628:
- 12936 00a4 00200080 .word -2147475456
- 12937 .cfi_endproc
- 12938 .LFE186:
- 12940 .section .text.I2C_ITAddrCplt,"ax",%progbits
- 12941 .align 1
- 12942 .syntax unified
- 12943 .thumb
- 12944 .thumb_func
- 12946 I2C_ITAddrCplt:
- 12947 .LFB187:
- 5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback.
- 5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
- 5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 12948 .loc 1 5958 1
- 12949 .cfi_startproc
- 12950 @ args = 0, pretend = 0, frame = 16
- 12951 @ frame_needed = 1, uses_anonymous_args = 0
- 12952 0000 80B5 push {r7, lr}
- 12953 .LCFI300:
- 12954 .cfi_def_cfa_offset 8
- 12955 .cfi_offset 7, -8
- 12956 .cfi_offset 14, -4
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 334
- 12957 0002 84B0 sub sp, sp, #16
- 12958 .LCFI301:
- 12959 .cfi_def_cfa_offset 24
- 12960 0004 00AF add r7, sp, #0
- 12961 .LCFI302:
- 12962 .cfi_def_cfa_register 7
- 12963 0006 7860 str r0, [r7, #4]
- 12964 0008 3960 str r1, [r7]
- 5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
- 5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
- 5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
- 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
- 5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
- 5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags);
- 5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 */
- 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)
- 12965 .loc 1 5968 22
- 12966 000a 7B68 ldr r3, [r7, #4]
- 12967 000c 93F84130 ldrb r3, [r3, #65]
- 12968 0010 DBB2 uxtb r3, r3
- 12969 .loc 1 5968 30
- 12970 0012 03F02803 and r3, r3, #40
- 12971 .loc 1 5968 6
- 12972 0016 282B cmp r3, #40
- 12973 0018 6AD1 bne .L631
- 5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
- 12974 .loc 1 5970 25
- 12975 001a 7B68 ldr r3, [r7, #4]
- 12976 001c 1B68 ldr r3, [r3]
- 12977 001e 9B69 ldr r3, [r3, #24]
- 12978 0020 1B0C lsrs r3, r3, #16
- 12979 0022 DBB2 uxtb r3, r3
- 12980 .loc 1 5970 23
- 12981 0024 03F00103 and r3, r3, #1
- 12982 0028 FB73 strb r3, [r7, #15]
- 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
- 12983 .loc 1 5971 25
- 12984 002a 7B68 ldr r3, [r7, #4]
- 12985 002c 1B68 ldr r3, [r3]
- 12986 002e 9B69 ldr r3, [r3, #24]
- 12987 0030 1B0C lsrs r3, r3, #16
- 12988 0032 9BB2 uxth r3, r3
- 12989 .loc 1 5971 23
- 12990 0034 03F0FE03 and r3, r3, #254
- 12991 0038 BB81 strh r3, [r7, #12] @ movhi
- 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
- 12992 .loc 1 5972 25
- 12993 003a 7B68 ldr r3, [r7, #4]
- 12994 003c 1B68 ldr r3, [r3]
- 12995 003e 9B68 ldr r3, [r3, #8]
- 12996 0040 9BB2 uxth r3, r3
- 12997 .loc 1 5972 23
- 12998 0042 C3F30903 ubfx r3, r3, #0, #10
- 12999 0046 7B81 strh r3, [r7, #10] @ movhi
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 335
- 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
- 13000 .loc 1 5973 25
- 13001 0048 7B68 ldr r3, [r7, #4]
- 13002 004a 1B68 ldr r3, [r3]
- 13003 004c DB68 ldr r3, [r3, #12]
- 13004 004e 9BB2 uxth r3, r3
- 13005 .loc 1 5973 23
- 13006 0050 03F0FE03 and r3, r3, #254
- 13007 0054 3B81 strh r3, [r7, #8] @ movhi
- 5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
- 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
- 13008 .loc 1 5976 19
- 13009 0056 7B68 ldr r3, [r7, #4]
- 13010 0058 DB68 ldr r3, [r3, #12]
- 13011 .loc 1 5976 8
- 13012 005a 022B cmp r3, #2
- 13013 005c 38D1 bne .L632
- 5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
- 13014 .loc 1 5978 44
- 13015 005e 7B89 ldrh r3, [r7, #10]
- 13016 0060 DB09 lsrs r3, r3, #7
- 13017 0062 9AB2 uxth r2, r3
- 13018 0064 BB89 ldrh r3, [r7, #12] @ movhi
- 13019 0066 5340 eors r3, r3, r2
- 13020 0068 9BB2 uxth r3, r3
- 13021 006a 03F00603 and r3, r3, #6
- 13022 .loc 1 5978 10
- 13023 006e 002B cmp r3, #0
- 13024 0070 1CD1 bne .L633
- 5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
- 13025 .loc 1 5980 23
- 13026 0072 7B89 ldrh r3, [r7, #10] @ movhi
- 13027 0074 BB81 strh r3, [r7, #12] @ movhi
- 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
- 13028 .loc 1 5981 13
- 13029 0076 7B68 ldr r3, [r7, #4]
- 13030 0078 9B6C ldr r3, [r3, #72]
- 13031 .loc 1 5981 29
- 13032 007a 5A1C adds r2, r3, #1
- 13033 007c 7B68 ldr r3, [r7, #4]
- 13034 007e 9A64 str r2, [r3, #72]
- 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
- 13035 .loc 1 5982 17
- 13036 0080 7B68 ldr r3, [r7, #4]
- 13037 0082 9B6C ldr r3, [r3, #72]
- 13038 .loc 1 5982 12
- 13039 0084 022B cmp r3, #2
- 13040 0086 3BD1 bne .L635
- 5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */
- 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
- 13041 .loc 1 5985 32
- 13042 0088 7B68 ldr r3, [r7, #4]
- 13043 008a 0022 movs r2, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 336
- 13044 008c 9A64 str r2, [r3, #72]
- 5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
- 5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 13045 .loc 1 5988 11
- 13046 008e 7B68 ldr r3, [r7, #4]
- 13047 0090 1B68 ldr r3, [r3]
- 13048 0092 0822 movs r2, #8
- 13049 0094 DA61 str r2, [r3, #28]
- 5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 13050 .loc 1 5991 11
- 13051 0096 7B68 ldr r3, [r7, #4]
- 13052 0098 0022 movs r2, #0
- 13053 009a 83F84020 strb r2, [r3, #64]
- 5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
- 5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
- 5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
- 13054 .loc 1 5997 11
- 13055 009e BA89 ldrh r2, [r7, #12]
- 13056 00a0 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 13057 00a2 1946 mov r1, r3
- 13058 00a4 7868 ldr r0, [r7, #4]
- 13059 00a6 FFF7FEFF bl HAL_I2C_AddrCallback
- 5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
- 6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
- 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
- 6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
- 6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
- 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
- 6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
- 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
- 6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 337
- 6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
- 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
- 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
- 6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */
- 6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
- 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
- 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 13060 .loc 1 6045 1
- 13061 00aa 29E0 b .L635
- 13062 .L633:
- 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13063 .loc 1 6003 23
- 13064 00ac 3B89 ldrh r3, [r7, #8] @ movhi
- 13065 00ae BB81 strh r3, [r7, #12] @ movhi
- 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13066 .loc 1 6006 9
- 13067 00b0 4FF40041 mov r1, #32768
- 13068 00b4 7868 ldr r0, [r7, #4]
- 13069 00b6 FFF7FEFF bl I2C_Disable_IRQ
- 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13070 .loc 1 6009 9
- 13071 00ba 7B68 ldr r3, [r7, #4]
- 13072 00bc 0022 movs r2, #0
- 13073 00be 83F84020 strb r2, [r3, #64]
- 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13074 .loc 1 6015 9
- 13075 00c2 BA89 ldrh r2, [r7, #12]
- 13076 00c4 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 13077 00c6 1946 mov r1, r3
- 13078 00c8 7868 ldr r0, [r7, #4]
- 13079 00ca FFF7FEFF bl HAL_I2C_AddrCallback
- 13080 .loc 1 6045 1
- 13081 00ce 17E0 b .L635
- 13082 .L632:
- 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13083 .loc 1 6023 7
- 13084 00d0 4FF40041 mov r1, #32768
- 13085 00d4 7868 ldr r0, [r7, #4]
- 13086 00d6 FFF7FEFF bl I2C_Disable_IRQ
- 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13087 .loc 1 6026 7
- 13088 00da 7B68 ldr r3, [r7, #4]
- 13089 00dc 0022 movs r2, #0
- 13090 00de 83F84020 strb r2, [r3, #64]
- 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 338
- 13091 .loc 1 6032 7
- 13092 00e2 BA89 ldrh r2, [r7, #12]
- 13093 00e4 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 13094 00e6 1946 mov r1, r3
- 13095 00e8 7868 ldr r0, [r7, #4]
- 13096 00ea FFF7FEFF bl HAL_I2C_AddrCallback
- 13097 .loc 1 6045 1
- 13098 00ee 07E0 b .L635
- 13099 .L631:
- 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13100 .loc 1 6040 5
- 13101 00f0 7B68 ldr r3, [r7, #4]
- 13102 00f2 1B68 ldr r3, [r3]
- 13103 00f4 0822 movs r2, #8
- 13104 00f6 DA61 str r2, [r3, #28]
- 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 13105 .loc 1 6043 5
- 13106 00f8 7B68 ldr r3, [r7, #4]
- 13107 00fa 0022 movs r2, #0
- 13108 00fc 83F84020 strb r2, [r3, #64]
- 13109 .L635:
- 13110 .loc 1 6045 1
- 13111 0100 00BF nop
- 13112 0102 1037 adds r7, r7, #16
- 13113 .LCFI303:
- 13114 .cfi_def_cfa_offset 8
- 13115 0104 BD46 mov sp, r7
- 13116 .LCFI304:
- 13117 .cfi_def_cfa_register 13
- 13118 @ sp needed
- 13119 0106 80BD pop {r7, pc}
- 13120 .cfi_endproc
- 13121 .LFE187:
- 13123 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
- 13124 .align 1
- 13125 .syntax unified
- 13126 .thumb
- 13127 .thumb_func
- 13129 I2C_ITMasterSeqCplt:
- 13130 .LFB188:
- 6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
- 6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
- 6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13131 .loc 1 6053 1
- 13132 .cfi_startproc
- 13133 @ args = 0, pretend = 0, frame = 8
- 13134 @ frame_needed = 1, uses_anonymous_args = 0
- 13135 0000 80B5 push {r7, lr}
- 13136 .LCFI305:
- 13137 .cfi_def_cfa_offset 8
- 13138 .cfi_offset 7, -8
- 13139 .cfi_offset 14, -4
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 339
- 13140 0002 82B0 sub sp, sp, #8
- 13141 .LCFI306:
- 13142 .cfi_def_cfa_offset 16
- 13143 0004 00AF add r7, sp, #0
- 13144 .LCFI307:
- 13145 .cfi_def_cfa_register 7
- 13146 0006 7860 str r0, [r7, #4]
- 6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
- 6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 13147 .loc 1 6055 14
- 13148 0008 7B68 ldr r3, [r7, #4]
- 13149 000a 0022 movs r2, #0
- 13150 000c 83F84220 strb r2, [r3, #66]
- 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
- 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 */
- 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
- 13151 .loc 1 6059 11
- 13152 0010 7B68 ldr r3, [r7, #4]
- 13153 0012 93F84130 ldrb r3, [r3, #65]
- 13154 0016 DBB2 uxtb r3, r3
- 13155 .loc 1 6059 6
- 13156 0018 212B cmp r3, #33
- 13157 001a 15D1 bne .L637
- 6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 13158 .loc 1 6061 25
- 13159 001c 7B68 ldr r3, [r7, #4]
- 13160 001e 2022 movs r2, #32
- 13161 0020 83F84120 strb r2, [r3, #65]
- 6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
- 13162 .loc 1 6062 25
- 13163 0024 7B68 ldr r3, [r7, #4]
- 13164 0026 1122 movs r2, #17
- 13165 0028 1A63 str r2, [r3, #48]
- 6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 13166 .loc 1 6063 25
- 13167 002a 7B68 ldr r3, [r7, #4]
- 13168 002c 0022 movs r2, #0
- 13169 002e 5A63 str r2, [r3, #52]
- 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
- 6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 13170 .loc 1 6066 5
- 13171 0030 0121 movs r1, #1
- 13172 0032 7868 ldr r0, [r7, #4]
- 13173 0034 FFF7FEFF bl I2C_Disable_IRQ
- 6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 13174 .loc 1 6069 5
- 13175 0038 7B68 ldr r3, [r7, #4]
- 13176 003a 0022 movs r2, #0
- 13177 003c 83F84020 strb r2, [r3, #64]
- 6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 340
- 6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
- 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
- 13178 .loc 1 6075 5
- 13179 0040 7868 ldr r0, [r7, #4]
- 13180 0042 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
- 6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
- 6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
- 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
- 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
- 6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
- 6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
- 6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 13181 .loc 1 6098 1
- 13182 0046 14E0 b .L639
- 13183 .L637:
- 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
- 13184 .loc 1 6081 25
- 13185 0048 7B68 ldr r3, [r7, #4]
- 13186 004a 2022 movs r2, #32
- 13187 004c 83F84120 strb r2, [r3, #65]
- 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 13188 .loc 1 6082 25
- 13189 0050 7B68 ldr r3, [r7, #4]
- 13190 0052 1222 movs r2, #18
- 13191 0054 1A63 str r2, [r3, #48]
- 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13192 .loc 1 6083 25
- 13193 0056 7B68 ldr r3, [r7, #4]
- 13194 0058 0022 movs r2, #0
- 13195 005a 5A63 str r2, [r3, #52]
- 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13196 .loc 1 6086 5
- 13197 005c 0221 movs r1, #2
- 13198 005e 7868 ldr r0, [r7, #4]
- 13199 0060 FFF7FEFF bl I2C_Disable_IRQ
- 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13200 .loc 1 6089 5
- 13201 0064 7B68 ldr r3, [r7, #4]
- 13202 0066 0022 movs r2, #0
- 13203 0068 83F84020 strb r2, [r3, #64]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 341
- 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13204 .loc 1 6095 5
- 13205 006c 7868 ldr r0, [r7, #4]
- 13206 006e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
- 13207 .L639:
- 13208 .loc 1 6098 1
- 13209 0072 00BF nop
- 13210 0074 0837 adds r7, r7, #8
- 13211 .LCFI308:
- 13212 .cfi_def_cfa_offset 8
- 13213 0076 BD46 mov sp, r7
- 13214 .LCFI309:
- 13215 .cfi_def_cfa_register 13
- 13216 @ sp needed
- 13217 0078 80BD pop {r7, pc}
- 13218 .cfi_endproc
- 13219 .LFE188:
- 13221 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
- 13222 .align 1
- 13223 .syntax unified
- 13224 .thumb
- 13225 .thumb_func
- 13227 I2C_ITSlaveSeqCplt:
- 13228 .LFB189:
- 6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
- 6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
- 6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13229 .loc 1 6106 1
- 13230 .cfi_startproc
- 13231 @ args = 0, pretend = 0, frame = 16
- 13232 @ frame_needed = 1, uses_anonymous_args = 0
- 13233 0000 80B5 push {r7, lr}
- 13234 .LCFI310:
- 13235 .cfi_def_cfa_offset 8
- 13236 .cfi_offset 7, -8
- 13237 .cfi_offset 14, -4
- 13238 0002 84B0 sub sp, sp, #16
- 13239 .LCFI311:
- 13240 .cfi_def_cfa_offset 24
- 13241 0004 00AF add r7, sp, #0
- 13242 .LCFI312:
- 13243 .cfi_def_cfa_register 7
- 13244 0006 7860 str r0, [r7, #4]
- 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
- 13245 .loc 1 6107 26
- 13246 0008 7B68 ldr r3, [r7, #4]
- 13247 000a 1B68 ldr r3, [r3]
- 13248 .loc 1 6107 12
- 13249 000c 1B68 ldr r3, [r3]
- 13250 000e FB60 str r3, [r7, #12]
- 6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 342
- 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 13251 .loc 1 6110 14
- 13252 0010 7B68 ldr r3, [r7, #4]
- 13253 0012 0022 movs r2, #0
- 13254 0014 83F84220 strb r2, [r3, #66]
- 6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
- 6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
- 13255 .loc 1 6113 7
- 13256 0018 FB68 ldr r3, [r7, #12]
- 13257 001a 9B0B lsrs r3, r3, #14
- 13258 001c 03F00103 and r3, r3, #1
- 13259 .loc 1 6113 6
- 13260 0020 002B cmp r3, #0
- 13261 0022 08D0 beq .L641
- 6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 13262 .loc 1 6116 9
- 13263 0024 7B68 ldr r3, [r7, #4]
- 13264 0026 1B68 ldr r3, [r3]
- 13265 .loc 1 6116 25
- 13266 0028 1A68 ldr r2, [r3]
- 13267 .loc 1 6116 9
- 13268 002a 7B68 ldr r3, [r7, #4]
- 13269 002c 1B68 ldr r3, [r3]
- 13270 .loc 1 6116 25
- 13271 002e 22F48042 bic r2, r2, #16384
- 13272 0032 1A60 str r2, [r3]
- 13273 0034 0DE0 b .L642
- 13274 .L641:
- 6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
- 13275 .loc 1 6118 12
- 13276 0036 FB68 ldr r3, [r7, #12]
- 13277 0038 DB0B lsrs r3, r3, #15
- 13278 003a 03F00103 and r3, r3, #1
- 13279 .loc 1 6118 11
- 13280 003e 002B cmp r3, #0
- 13281 0040 07D0 beq .L642
- 6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 13282 .loc 1 6121 9
- 13283 0042 7B68 ldr r3, [r7, #4]
- 13284 0044 1B68 ldr r3, [r3]
- 13285 .loc 1 6121 25
- 13286 0046 1A68 ldr r2, [r3]
- 13287 .loc 1 6121 9
- 13288 0048 7B68 ldr r3, [r7, #4]
- 13289 004a 1B68 ldr r3, [r3]
- 13290 .loc 1 6121 25
- 13291 004c 22F40042 bic r2, r2, #32768
- 13292 0050 1A60 str r2, [r3]
- 13293 .L642:
- 6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 343
- 6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
- 6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
- 13294 .loc 1 6128 11
- 13295 0052 7B68 ldr r3, [r7, #4]
- 13296 0054 93F84130 ldrb r3, [r3, #65]
- 13297 0058 DBB2 uxtb r3, r3
- 13298 .loc 1 6128 6
- 13299 005a 292B cmp r3, #41
- 13300 005c 12D1 bne .L643
- 6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
- 6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 13301 .loc 1 6131 25
- 13302 005e 7B68 ldr r3, [r7, #4]
- 13303 0060 2822 movs r2, #40
- 13304 0062 83F84120 strb r2, [r3, #65]
- 6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
- 13305 .loc 1 6132 25
- 13306 0066 7B68 ldr r3, [r7, #4]
- 13307 0068 2122 movs r2, #33
- 13308 006a 1A63 str r2, [r3, #48]
- 6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
- 6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 13309 .loc 1 6135 5
- 13310 006c 0121 movs r1, #1
- 13311 006e 7868 ldr r0, [r7, #4]
- 13312 0070 FFF7FEFF bl I2C_Disable_IRQ
- 6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 13313 .loc 1 6138 5
- 13314 0074 7B68 ldr r3, [r7, #4]
- 13315 0076 0022 movs r2, #0
- 13316 0078 83F84020 strb r2, [r3, #64]
- 6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
- 6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
- 13317 .loc 1 6144 5
- 13318 007c 7868 ldr r0, [r7, #4]
- 13319 007e FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
- 6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
- 6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
- 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
- 6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 344
- 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
- 6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
- 6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
- 6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 13320 .loc 1 6171 1
- 13321 0082 17E0 b .L645
- 13322 .L643:
- 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13323 .loc 1 6148 16
- 13324 0084 7B68 ldr r3, [r7, #4]
- 13325 0086 93F84130 ldrb r3, [r3, #65]
- 13326 008a DBB2 uxtb r3, r3
- 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13327 .loc 1 6148 11
- 13328 008c 2A2B cmp r3, #42
- 13329 008e 11D1 bne .L645
- 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
- 13330 .loc 1 6151 25
- 13331 0090 7B68 ldr r3, [r7, #4]
- 13332 0092 2822 movs r2, #40
- 13333 0094 83F84120 strb r2, [r3, #65]
- 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13334 .loc 1 6152 25
- 13335 0098 7B68 ldr r3, [r7, #4]
- 13336 009a 2222 movs r2, #34
- 13337 009c 1A63 str r2, [r3, #48]
- 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13338 .loc 1 6155 5
- 13339 009e 0221 movs r1, #2
- 13340 00a0 7868 ldr r0, [r7, #4]
- 13341 00a2 FFF7FEFF bl I2C_Disable_IRQ
- 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13342 .loc 1 6158 5
- 13343 00a6 7B68 ldr r3, [r7, #4]
- 13344 00a8 0022 movs r2, #0
- 13345 00aa 83F84020 strb r2, [r3, #64]
- 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13346 .loc 1 6164 5
- 13347 00ae 7868 ldr r0, [r7, #4]
- 13348 00b0 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
- 13349 .L645:
- 13350 .loc 1 6171 1
- 13351 00b4 00BF nop
- 13352 00b6 1037 adds r7, r7, #16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 345
- 13353 .LCFI313:
- 13354 .cfi_def_cfa_offset 8
- 13355 00b8 BD46 mov sp, r7
- 13356 .LCFI314:
- 13357 .cfi_def_cfa_register 13
- 13358 @ sp needed
- 13359 00ba 80BD pop {r7, pc}
- 13360 .cfi_endproc
- 13361 .LFE189:
- 13363 .section .text.I2C_ITMasterCplt,"ax",%progbits
- 13364 .align 1
- 13365 .syntax unified
- 13366 .thumb
- 13367 .thumb_func
- 13369 I2C_ITMasterCplt:
- 13370 .LFB190:
- 6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process.
- 6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
- 6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13371 .loc 1 6180 1
- 13372 .cfi_startproc
- 13373 @ args = 0, pretend = 0, frame = 24
- 13374 @ frame_needed = 1, uses_anonymous_args = 0
- 13375 0000 80B5 push {r7, lr}
- 13376 .LCFI315:
- 13377 .cfi_def_cfa_offset 8
- 13378 .cfi_offset 7, -8
- 13379 .cfi_offset 14, -4
- 13380 0002 86B0 sub sp, sp, #24
- 13381 .LCFI316:
- 13382 .cfi_def_cfa_offset 32
- 13383 0004 00AF add r7, sp, #0
- 13384 .LCFI317:
- 13385 .cfi_def_cfa_register 7
- 13386 0006 7860 str r0, [r7, #4]
- 13387 0008 3960 str r1, [r7]
- 6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
- 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
- 13388 .loc 1 6182 12
- 13389 000a 3B68 ldr r3, [r7]
- 13390 000c 7B61 str r3, [r7, #20]
- 6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
- 6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 13391 .loc 1 6186 3
- 13392 000e 7B68 ldr r3, [r7, #4]
- 13393 0010 1B68 ldr r3, [r3]
- 13394 0012 2022 movs r2, #32
- 13395 0014 DA61 str r2, [r3, #28]
- 6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 346
- 6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
- 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
- 13396 .loc 1 6189 11
- 13397 0016 7B68 ldr r3, [r7, #4]
- 13398 0018 93F84130 ldrb r3, [r3, #65]
- 13399 001c DBB2 uxtb r3, r3
- 13400 .loc 1 6189 6
- 13401 001e 212B cmp r3, #33
- 13402 0020 07D1 bne .L647
- 6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
- 13403 .loc 1 6191 5
- 13404 0022 0121 movs r1, #1
- 13405 0024 7868 ldr r0, [r7, #4]
- 13406 0026 FFF7FEFF bl I2C_Disable_IRQ
- 6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
- 13407 .loc 1 6192 25
- 13408 002a 7B68 ldr r3, [r7, #4]
- 13409 002c 1122 movs r2, #17
- 13410 002e 1A63 str r2, [r3, #48]
- 13411 0030 0CE0 b .L648
- 13412 .L647:
- 6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 13413 .loc 1 6194 16
- 13414 0032 7B68 ldr r3, [r7, #4]
- 13415 0034 93F84130 ldrb r3, [r3, #65]
- 13416 0038 DBB2 uxtb r3, r3
- 13417 .loc 1 6194 11
- 13418 003a 222B cmp r3, #34
- 13419 003c 06D1 bne .L648
- 6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
- 13420 .loc 1 6196 5
- 13421 003e 0221 movs r1, #2
- 13422 0040 7868 ldr r0, [r7, #4]
- 13423 0042 FFF7FEFF bl I2C_Disable_IRQ
- 6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
- 13424 .loc 1 6197 25
- 13425 0046 7B68 ldr r3, [r7, #4]
- 13426 0048 1222 movs r2, #18
- 13427 004a 1A63 str r2, [r3, #48]
- 13428 .L648:
- 6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
- 6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 13429 .loc 1 6205 3
- 13430 004c 7B68 ldr r3, [r7, #4]
- 13431 004e 1B68 ldr r3, [r3]
- 13432 0050 5968 ldr r1, [r3, #4]
- 13433 0052 7B68 ldr r3, [r7, #4]
- 13434 0054 1A68 ldr r2, [r3]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 347
- 13435 0056 4D4B ldr r3, .L658
- 13436 0058 0B40 ands r3, r3, r1
- 13437 005a 5360 str r3, [r2, #4]
- 6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
- 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 13438 .loc 1 6208 23
- 13439 005c 7B68 ldr r3, [r7, #4]
- 13440 005e 0022 movs r2, #0
- 13441 0060 5A63 str r2, [r3, #52]
- 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 13442 .loc 1 6209 23
- 13443 0062 7B68 ldr r3, [r7, #4]
- 13444 0064 4A4A ldr r2, .L658+4
- 13445 0066 DA62 str r2, [r3, #44]
- 6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
- 13446 .loc 1 6211 7
- 13447 0068 7B69 ldr r3, [r7, #20]
- 13448 006a 1B09 lsrs r3, r3, #4
- 13449 006c 03F00103 and r3, r3, #1
- 13450 .loc 1 6211 6
- 13451 0070 002B cmp r3, #0
- 13452 0072 09D0 beq .L649
- 6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 13453 .loc 1 6214 5
- 13454 0074 7B68 ldr r3, [r7, #4]
- 13455 0076 1B68 ldr r3, [r3]
- 13456 0078 1022 movs r2, #16
- 13457 007a DA61 str r2, [r3, #28]
- 6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */
- 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 13458 .loc 1 6217 21
- 13459 007c 7B68 ldr r3, [r7, #4]
- 13460 007e 5B6C ldr r3, [r3, #68]
- 13461 0080 43F00402 orr r2, r3, #4
- 13462 0084 7B68 ldr r3, [r7, #4]
- 13463 0086 5A64 str r2, [r3, #68]
- 13464 .L649:
- 6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */
- 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))
- 13465 .loc 1 6221 12
- 13466 0088 7B68 ldr r3, [r7, #4]
- 13467 008a 93F84130 ldrb r3, [r3, #65]
- 13468 008e DBB2 uxtb r3, r3
- 13469 .loc 1 6221 6
- 13470 0090 602B cmp r3, #96
- 13471 0092 0BD1 bne .L650
- 13472 .loc 1 6221 48 discriminator 1
- 13473 0094 7B69 ldr r3, [r7, #20]
- 13474 0096 9B08 lsrs r3, r3, #2
- 13475 0098 03F00103 and r3, r3, #1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 348
- 13476 .loc 1 6221 44 discriminator 1
- 13477 009c 002B cmp r3, #0
- 13478 009e 05D0 beq .L650
- 6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
- 13479 .loc 1 6224 27
- 13480 00a0 7B68 ldr r3, [r7, #4]
- 13481 00a2 1B68 ldr r3, [r3]
- 13482 .loc 1 6224 37
- 13483 00a4 5B6A ldr r3, [r3, #36]
- 13484 .loc 1 6224 14
- 13485 00a6 DBB2 uxtb r3, r3
- 13486 .loc 1 6224 12
- 13487 00a8 FB60 str r3, [r7, #12]
- 6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
- 13488 .loc 1 6225 5
- 13489 00aa FB68 ldr r3, [r7, #12]
- 13490 .L650:
- 6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 13491 .loc 1 6229 3
- 13492 00ac 7868 ldr r0, [r7, #4]
- 13493 00ae FFF7FEFF bl I2C_Flush_TXDR
- 6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
- 6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
- 13494 .loc 1 6232 12
- 13495 00b2 7B68 ldr r3, [r7, #4]
- 13496 00b4 5B6C ldr r3, [r3, #68]
- 13497 00b6 3B61 str r3, [r7, #16]
- 6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
- 13498 .loc 1 6235 12
- 13499 00b8 7B68 ldr r3, [r7, #4]
- 13500 00ba 93F84130 ldrb r3, [r3, #65]
- 13501 00be DBB2 uxtb r3, r3
- 13502 .loc 1 6235 6
- 13503 00c0 602B cmp r3, #96
- 13504 00c2 02D0 beq .L651
- 13505 .loc 1 6235 44 discriminator 1
- 13506 00c4 3B69 ldr r3, [r7, #16]
- 13507 00c6 002B cmp r3, #0
- 13508 00c8 06D0 beq .L652
- 13509 .L651:
- 6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
- 13510 .loc 1 6238 5
- 13511 00ca 7B68 ldr r3, [r7, #4]
- 13512 00cc 5B6C ldr r3, [r3, #68]
- 13513 00ce 1946 mov r1, r3
- 13514 00d0 7868 ldr r0, [r7, #4]
- 13515 00d2 FFF7FEFF bl I2C_ITError
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 349
- 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
- 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
- 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
- 6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
- 6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
- 6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
- 6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
- 6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
- 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
- 6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
- 6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
- 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 350
- 6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
- 6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
- 6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 13516 .loc 1 6314 1
- 13517 00d6 54E0 b .L657
- 13518 .L652:
- 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13519 .loc 1 6241 16
- 13520 00d8 7B68 ldr r3, [r7, #4]
- 13521 00da 93F84130 ldrb r3, [r3, #65]
- 13522 00de DBB2 uxtb r3, r3
- 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13523 .loc 1 6241 11
- 13524 00e0 212B cmp r3, #33
- 13525 00e2 24D1 bne .L654
- 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 13526 .loc 1 6243 17
- 13527 00e4 7B68 ldr r3, [r7, #4]
- 13528 00e6 2022 movs r2, #32
- 13529 00e8 83F84120 strb r2, [r3, #65]
- 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13530 .loc 1 6244 25
- 13531 00ec 7B68 ldr r3, [r7, #4]
- 13532 00ee 0022 movs r2, #0
- 13533 00f0 1A63 str r2, [r3, #48]
- 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13534 .loc 1 6246 13
- 13535 00f2 7B68 ldr r3, [r7, #4]
- 13536 00f4 93F84230 ldrb r3, [r3, #66]
- 13537 00f8 DBB2 uxtb r3, r3
- 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13538 .loc 1 6246 8
- 13539 00fa 402B cmp r3, #64
- 13540 00fc 0BD1 bne .L655
- 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13541 .loc 1 6248 18
- 13542 00fe 7B68 ldr r3, [r7, #4]
- 13543 0100 0022 movs r2, #0
- 13544 0102 83F84220 strb r2, [r3, #66]
- 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13545 .loc 1 6251 7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 351
- 13546 0106 7B68 ldr r3, [r7, #4]
- 13547 0108 0022 movs r2, #0
- 13548 010a 83F84020 strb r2, [r3, #64]
- 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13549 .loc 1 6257 7
- 13550 010e 7868 ldr r0, [r7, #4]
- 13551 0110 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
- 13552 .loc 1 6314 1
- 13553 0114 35E0 b .L657
- 13554 .L655:
- 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13555 .loc 1 6262 18
- 13556 0116 7B68 ldr r3, [r7, #4]
- 13557 0118 0022 movs r2, #0
- 13558 011a 83F84220 strb r2, [r3, #66]
- 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13559 .loc 1 6265 7
- 13560 011e 7B68 ldr r3, [r7, #4]
- 13561 0120 0022 movs r2, #0
- 13562 0122 83F84020 strb r2, [r3, #64]
- 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13563 .loc 1 6271 7
- 13564 0126 7868 ldr r0, [r7, #4]
- 13565 0128 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
- 13566 .loc 1 6314 1
- 13567 012c 29E0 b .L657
- 13568 .L654:
- 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13569 .loc 1 6276 16
- 13570 012e 7B68 ldr r3, [r7, #4]
- 13571 0130 93F84130 ldrb r3, [r3, #65]
- 13572 0134 DBB2 uxtb r3, r3
- 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13573 .loc 1 6276 11
- 13574 0136 222B cmp r3, #34
- 13575 0138 23D1 bne .L657
- 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 13576 .loc 1 6278 17
- 13577 013a 7B68 ldr r3, [r7, #4]
- 13578 013c 2022 movs r2, #32
- 13579 013e 83F84120 strb r2, [r3, #65]
- 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13580 .loc 1 6279 25
- 13581 0142 7B68 ldr r3, [r7, #4]
- 13582 0144 0022 movs r2, #0
- 13583 0146 1A63 str r2, [r3, #48]
- 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13584 .loc 1 6281 13
- 13585 0148 7B68 ldr r3, [r7, #4]
- 13586 014a 93F84230 ldrb r3, [r3, #66]
- 13587 014e DBB2 uxtb r3, r3
- 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13588 .loc 1 6281 8
- 13589 0150 402B cmp r3, #64
- 13590 0152 0BD1 bne .L656
- 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13591 .loc 1 6283 18
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 352
- 13592 0154 7B68 ldr r3, [r7, #4]
- 13593 0156 0022 movs r2, #0
- 13594 0158 83F84220 strb r2, [r3, #66]
- 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13595 .loc 1 6286 7
- 13596 015c 7B68 ldr r3, [r7, #4]
- 13597 015e 0022 movs r2, #0
- 13598 0160 83F84020 strb r2, [r3, #64]
- 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13599 .loc 1 6292 7
- 13600 0164 7868 ldr r0, [r7, #4]
- 13601 0166 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
- 13602 .loc 1 6314 1
- 13603 016a 0AE0 b .L657
- 13604 .L656:
- 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13605 .loc 1 6297 18
- 13606 016c 7B68 ldr r3, [r7, #4]
- 13607 016e 0022 movs r2, #0
- 13608 0170 83F84220 strb r2, [r3, #66]
- 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 13609 .loc 1 6300 7
- 13610 0174 7B68 ldr r3, [r7, #4]
- 13611 0176 0022 movs r2, #0
- 13612 0178 83F84020 strb r2, [r3, #64]
- 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 13613 .loc 1 6306 7
- 13614 017c 7868 ldr r0, [r7, #4]
- 13615 017e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
- 13616 .L657:
- 13617 .loc 1 6314 1
- 13618 0182 00BF nop
- 13619 0184 1837 adds r7, r7, #24
- 13620 .LCFI318:
- 13621 .cfi_def_cfa_offset 8
- 13622 0186 BD46 mov sp, r7
- 13623 .LCFI319:
- 13624 .cfi_def_cfa_register 13
- 13625 @ sp needed
- 13626 0188 80BD pop {r7, pc}
- 13627 .L659:
- 13628 018a 00BF .align 2
- 13629 .L658:
- 13630 018c 00E800FE .word -33495040
- 13631 0190 0000FFFF .word -65536
- 13632 .cfi_endproc
- 13633 .LFE190:
- 13635 .section .text.I2C_ITSlaveCplt,"ax",%progbits
- 13636 .align 1
- 13637 .syntax unified
- 13638 .thumb
- 13639 .thumb_func
- 13641 I2C_ITSlaveCplt:
- 13642 .LFB191:
- 6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process.
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 353
- 6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
- 6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 13643 .loc 1 6323 1
- 13644 .cfi_startproc
- 13645 @ args = 0, pretend = 0, frame = 24
- 13646 @ frame_needed = 1, uses_anonymous_args = 0
- 13647 0000 80B5 push {r7, lr}
- 13648 .LCFI320:
- 13649 .cfi_def_cfa_offset 8
- 13650 .cfi_offset 7, -8
- 13651 .cfi_offset 14, -4
- 13652 0002 86B0 sub sp, sp, #24
- 13653 .LCFI321:
- 13654 .cfi_def_cfa_offset 32
- 13655 0004 00AF add r7, sp, #0
- 13656 .LCFI322:
- 13657 .cfi_def_cfa_register 7
- 13658 0006 7860 str r0, [r7, #4]
- 13659 0008 3960 str r1, [r7]
- 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
- 13660 .loc 1 6324 26
- 13661 000a 7B68 ldr r3, [r7, #4]
- 13662 000c 1B68 ldr r3, [r3]
- 13663 .loc 1 6324 12
- 13664 000e 1B68 ldr r3, [r3]
- 13665 0010 3B61 str r3, [r7, #16]
- 6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
- 13666 .loc 1 6325 12
- 13667 0012 3B68 ldr r3, [r7]
- 13668 0014 7B61 str r3, [r7, #20]
- 6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
- 13669 .loc 1 6326 12
- 13670 0016 7B68 ldr r3, [r7, #4]
- 13671 0018 DB6A ldr r3, [r3, #44]
- 13672 001a FB60 str r3, [r7, #12]
- 6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
- 13673 .loc 1 6327 24
- 13674 001c 7B68 ldr r3, [r7, #4]
- 13675 001e 93F84130 ldrb r3, [r3, #65]
- 13676 0022 FB72 strb r3, [r7, #11]
- 6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 13677 .loc 1 6330 3
- 13678 0024 7B68 ldr r3, [r7, #4]
- 13679 0026 1B68 ldr r3, [r3]
- 13680 0028 2022 movs r2, #32
- 13681 002a DA61 str r2, [r3, #28]
- 6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
- 6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
- 13682 .loc 1 6333 6
- 13683 002c FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 354
- 13684 002e 212B cmp r3, #33
- 13685 0030 02D0 beq .L661
- 13686 .loc 1 6333 43 discriminator 1
- 13687 0032 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
- 13688 0034 292B cmp r3, #41
- 13689 0036 08D1 bne .L662
- 13690 .L661:
- 6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
- 13691 .loc 1 6335 5
- 13692 0038 48F20101 movw r1, #32769
- 13693 003c 7868 ldr r0, [r7, #4]
- 13694 003e FFF7FEFF bl I2C_Disable_IRQ
- 6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
- 13695 .loc 1 6336 25
- 13696 0042 7B68 ldr r3, [r7, #4]
- 13697 0044 2122 movs r2, #33
- 13698 0046 1A63 str r2, [r3, #48]
- 13699 0048 19E0 b .L663
- 13700 .L662:
- 6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 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))
- 13701 .loc 1 6338 11
- 13702 004a FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
- 13703 004c 222B cmp r3, #34
- 13704 004e 02D0 beq .L664
- 13705 .loc 1 6338 48 discriminator 1
- 13706 0050 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
- 13707 0052 2A2B cmp r3, #42
- 13708 0054 08D1 bne .L665
- 13709 .L664:
- 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
- 13710 .loc 1 6340 5
- 13711 0056 48F20201 movw r1, #32770
- 13712 005a 7868 ldr r0, [r7, #4]
- 13713 005c FFF7FEFF bl I2C_Disable_IRQ
- 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
- 13714 .loc 1 6341 25
- 13715 0060 7B68 ldr r3, [r7, #4]
- 13716 0062 2222 movs r2, #34
- 13717 0064 1A63 str r2, [r3, #48]
- 13718 0066 0AE0 b .L663
- 13719 .L665:
- 6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN)
- 13720 .loc 1 6343 11
- 13721 0068 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
- 13722 006a 282B cmp r3, #40
- 13723 006c 07D1 bne .L663
- 6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 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);
- 13724 .loc 1 6345 5
- 13725 006e 48F20301 movw r1, #32771
- 13726 0072 7868 ldr r0, [r7, #4]
- 13727 0074 FFF7FEFF bl I2C_Disable_IRQ
- 6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 355
- 13728 .loc 1 6346 25
- 13729 0078 7B68 ldr r3, [r7, #4]
- 13730 007a 0022 movs r2, #0
- 13731 007c 1A63 str r2, [r3, #48]
- 13732 .L663:
- 6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
- 6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
- 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 13733 .loc 1 6354 7
- 13734 007e 7B68 ldr r3, [r7, #4]
- 13735 0080 1B68 ldr r3, [r3]
- 13736 .loc 1 6354 23
- 13737 0082 5A68 ldr r2, [r3, #4]
- 13738 .loc 1 6354 7
- 13739 0084 7B68 ldr r3, [r7, #4]
- 13740 0086 1B68 ldr r3, [r3]
- 13741 .loc 1 6354 23
- 13742 0088 42F40042 orr r2, r2, #32768
- 13743 008c 5A60 str r2, [r3, #4]
- 6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 13744 .loc 1 6357 3
- 13745 008e 7B68 ldr r3, [r7, #4]
- 13746 0090 1B68 ldr r3, [r3]
- 13747 0092 5968 ldr r1, [r3, #4]
- 13748 0094 7B68 ldr r3, [r7, #4]
- 13749 0096 1A68 ldr r2, [r3]
- 13750 0098 8C4B ldr r3, .L681
- 13751 009a 0B40 ands r3, r3, r1
- 13752 009c 5360 str r3, [r2, #4]
- 6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 13753 .loc 1 6360 3
- 13754 009e 7868 ldr r0, [r7, #4]
- 13755 00a0 FFF7FEFF bl I2C_Flush_TXDR
- 6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
- 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
- 13756 .loc 1 6363 7
- 13757 00a4 3B69 ldr r3, [r7, #16]
- 13758 00a6 9B0B lsrs r3, r3, #14
- 13759 00a8 03F00103 and r3, r3, #1
- 13760 .loc 1 6363 6
- 13761 00ac 002B cmp r3, #0
- 13762 00ae 13D0 beq .L666
- 6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 13763 .loc 1 6366 9
- 13764 00b0 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 356
- 13765 00b2 1B68 ldr r3, [r3]
- 13766 .loc 1 6366 25
- 13767 00b4 1A68 ldr r2, [r3]
- 13768 .loc 1 6366 9
- 13769 00b6 7B68 ldr r3, [r7, #4]
- 13770 00b8 1B68 ldr r3, [r3]
- 13771 .loc 1 6366 25
- 13772 00ba 22F48042 bic r2, r2, #16384
- 13773 00be 1A60 str r2, [r3]
- 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 13774 .loc 1 6368 13
- 13775 00c0 7B68 ldr r3, [r7, #4]
- 13776 00c2 9B6B ldr r3, [r3, #56]
- 13777 .loc 1 6368 8
- 13778 00c4 002B cmp r3, #0
- 13779 00c6 20D0 beq .L667
- 6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx);
- 13780 .loc 1 6370 35
- 13781 00c8 7B68 ldr r3, [r7, #4]
- 13782 00ca 9B6B ldr r3, [r3, #56]
- 13783 00cc 1B68 ldr r3, [r3]
- 13784 00ce 5B68 ldr r3, [r3, #4]
- 13785 .loc 1 6370 25
- 13786 00d0 9AB2 uxth r2, r3
- 13787 .loc 1 6370 23
- 13788 00d2 7B68 ldr r3, [r7, #4]
- 13789 00d4 5A85 strh r2, [r3, #42] @ movhi
- 13790 00d6 18E0 b .L667
- 13791 .L666:
- 6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
- 13792 .loc 1 6373 12
- 13793 00d8 3B69 ldr r3, [r7, #16]
- 13794 00da DB0B lsrs r3, r3, #15
- 13795 00dc 03F00103 and r3, r3, #1
- 13796 .loc 1 6373 11
- 13797 00e0 002B cmp r3, #0
- 13798 00e2 12D0 beq .L667
- 6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 13799 .loc 1 6376 9
- 13800 00e4 7B68 ldr r3, [r7, #4]
- 13801 00e6 1B68 ldr r3, [r3]
- 13802 .loc 1 6376 25
- 13803 00e8 1A68 ldr r2, [r3]
- 13804 .loc 1 6376 9
- 13805 00ea 7B68 ldr r3, [r7, #4]
- 13806 00ec 1B68 ldr r3, [r3]
- 13807 .loc 1 6376 25
- 13808 00ee 22F40042 bic r2, r2, #32768
- 13809 00f2 1A60 str r2, [r3]
- 6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 357
- 13810 .loc 1 6378 13
- 13811 00f4 7B68 ldr r3, [r7, #4]
- 13812 00f6 DB6B ldr r3, [r3, #60]
- 13813 .loc 1 6378 8
- 13814 00f8 002B cmp r3, #0
- 13815 00fa 06D0 beq .L667
- 6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx);
- 13816 .loc 1 6380 35
- 13817 00fc 7B68 ldr r3, [r7, #4]
- 13818 00fe DB6B ldr r3, [r3, #60]
- 13819 0100 1B68 ldr r3, [r3]
- 13820 0102 5B68 ldr r3, [r3, #4]
- 13821 .loc 1 6380 25
- 13822 0104 9AB2 uxth r2, r3
- 13823 .loc 1 6380 23
- 13824 0106 7B68 ldr r3, [r7, #4]
- 13825 0108 5A85 strh r2, [r3, #42] @ movhi
- 13826 .L667:
- 6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
- 6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
- 6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
- 13827 .loc 1 6389 7
- 13828 010a 7B69 ldr r3, [r7, #20]
- 13829 010c 9B08 lsrs r3, r3, #2
- 13830 010e 03F00103 and r3, r3, #1
- 13831 .loc 1 6389 6
- 13832 0112 002B cmp r3, #0
- 13833 0114 20D0 beq .L668
- 6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
- 6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
- 13834 .loc 1 6392 16
- 13835 0116 7B69 ldr r3, [r7, #20]
- 13836 0118 23F00403 bic r3, r3, #4
- 13837 011c 7B61 str r3, [r7, #20]
- 6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 13838 .loc 1 6395 36
- 13839 011e 7B68 ldr r3, [r7, #4]
- 13840 0120 1B68 ldr r3, [r3]
- 13841 .loc 1 6395 46
- 13842 0122 5A6A ldr r2, [r3, #36]
- 13843 .loc 1 6395 10
- 13844 0124 7B68 ldr r3, [r7, #4]
- 13845 0126 5B6A ldr r3, [r3, #36]
- 13846 .loc 1 6395 23
- 13847 0128 D2B2 uxtb r2, r2
- 13848 .loc 1 6395 21
- 13849 012a 1A70 strb r2, [r3]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 358
- 6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 13850 .loc 1 6398 9
- 13851 012c 7B68 ldr r3, [r7, #4]
- 13852 012e 5B6A ldr r3, [r3, #36]
- 13853 .loc 1 6398 19
- 13854 0130 5A1C adds r2, r3, #1
- 13855 0132 7B68 ldr r3, [r7, #4]
- 13856 0134 5A62 str r2, [r3, #36]
- 6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
- 13857 .loc 1 6400 14
- 13858 0136 7B68 ldr r3, [r7, #4]
- 13859 0138 1B8D ldrh r3, [r3, #40]
- 13860 .loc 1 6400 8
- 13861 013a 002B cmp r3, #0
- 13862 013c 0CD0 beq .L668
- 6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 13863 .loc 1 6402 11
- 13864 013e 7B68 ldr r3, [r7, #4]
- 13865 0140 1B8D ldrh r3, [r3, #40]
- 13866 .loc 1 6402 21
- 13867 0142 013B subs r3, r3, #1
- 13868 0144 9AB2 uxth r2, r3
- 13869 0146 7B68 ldr r3, [r7, #4]
- 13870 0148 1A85 strh r2, [r3, #40] @ movhi
- 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 13871 .loc 1 6403 11
- 13872 014a 7B68 ldr r3, [r7, #4]
- 13873 014c 5B8D ldrh r3, [r3, #42] @ movhi
- 13874 014e 9BB2 uxth r3, r3
- 13875 .loc 1 6403 22
- 13876 0150 013B subs r3, r3, #1
- 13877 0152 9AB2 uxth r2, r3
- 13878 0154 7B68 ldr r3, [r7, #4]
- 13879 0156 5A85 strh r2, [r3, #42] @ movhi
- 13880 .L668:
- 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
- 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
- 13881 .loc 1 6408 11
- 13882 0158 7B68 ldr r3, [r7, #4]
- 13883 015a 5B8D ldrh r3, [r3, #42] @ movhi
- 13884 015c 9BB2 uxth r3, r3
- 13885 .loc 1 6408 6
- 13886 015e 002B cmp r3, #0
- 13887 0160 05D0 beq .L669
- 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
- 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 13888 .loc 1 6411 21
- 13889 0162 7B68 ldr r3, [r7, #4]
- 13890 0164 5B6C ldr r3, [r3, #68]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 359
- 13891 0166 43F00402 orr r2, r3, #4
- 13892 016a 7B68 ldr r3, [r7, #4]
- 13893 016c 5A64 str r2, [r3, #68]
- 13894 .L669:
- 6412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
- 13895 .loc 1 6414 8
- 13896 016e 7B69 ldr r3, [r7, #20]
- 13897 0170 1B09 lsrs r3, r3, #4
- 13898 0172 03F00103 and r3, r3, #1
- 13899 .loc 1 6414 6
- 13900 0176 002B cmp r3, #0
- 13901 0178 4AD0 beq .L670
- 6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
- 13902 .loc 1 6415 8 discriminator 1
- 13903 017a 3B69 ldr r3, [r7, #16]
- 13904 017c 1B09 lsrs r3, r3, #4
- 13905 017e 03F00103 and r3, r3, #1
- 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
- 13906 .loc 1 6414 58 discriminator 1
- 13907 0182 002B cmp r3, #0
- 13908 0184 44D0 beq .L670
- 6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
- 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 */
- 6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
- 6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
- 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
- 13909 .loc 1 6421 13
- 13910 0186 7B68 ldr r3, [r7, #4]
- 13911 0188 5B8D ldrh r3, [r3, #42] @ movhi
- 13912 018a 9BB2 uxth r3, r3
- 13913 .loc 1 6421 8
- 13914 018c 002B cmp r3, #0
- 13915 018e 28D1 bne .L671
- 6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
- 13916 .loc 1 6423 16
- 13917 0190 7B68 ldr r3, [r7, #4]
- 13918 0192 93F84130 ldrb r3, [r3, #65]
- 13919 0196 DBB2 uxtb r3, r3
- 13920 .loc 1 6423 10
- 13921 0198 282B cmp r3, #40
- 13922 019a 08D1 bne .L672
- 13923 .loc 1 6423 49 discriminator 1
- 13924 019c FB68 ldr r3, [r7, #12]
- 13925 019e B3F1007F cmp r3, #33554432
- 13926 01a2 04D1 bne .L672
- 6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
- 6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
- 6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
- 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
- 13927 .loc 1 6428 9
- 13928 01a4 7969 ldr r1, [r7, #20]
- 13929 01a6 7868 ldr r0, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 360
- 13930 01a8 FFF7FEFF bl I2C_ITListenCplt
- 13931 01ac 30E0 b .L670
- 13932 .L672:
- 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 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)
- 13933 .loc 1 6430 21
- 13934 01ae 7B68 ldr r3, [r7, #4]
- 13935 01b0 93F84130 ldrb r3, [r3, #65]
- 13936 01b4 DBB2 uxtb r3, r3
- 13937 .loc 1 6430 15
- 13938 01b6 292B cmp r3, #41
- 13939 01b8 0ED1 bne .L674
- 13940 .loc 1 6430 62 discriminator 1
- 13941 01ba FB68 ldr r3, [r7, #12]
- 13942 01bc 13F5803F cmn r3, #65536
- 13943 01c0 0AD0 beq .L674
- 6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 13944 .loc 1 6433 9
- 13945 01c2 7B68 ldr r3, [r7, #4]
- 13946 01c4 1B68 ldr r3, [r3]
- 13947 01c6 1022 movs r2, #16
- 13948 01c8 DA61 str r2, [r3, #28]
- 6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 13949 .loc 1 6436 9
- 13950 01ca 7868 ldr r0, [r7, #4]
- 13951 01cc FFF7FEFF bl I2C_Flush_TXDR
- 6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
- 6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 13952 .loc 1 6440 9
- 13953 01d0 7868 ldr r0, [r7, #4]
- 13954 01d2 FFF7FEFF bl I2C_ITSlaveSeqCplt
- 13955 01d6 1BE0 b .L670
- 13956 .L674:
- 6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 13957 .loc 1 6445 9
- 13958 01d8 7B68 ldr r3, [r7, #4]
- 13959 01da 1B68 ldr r3, [r3]
- 13960 01dc 1022 movs r2, #16
- 13961 01de DA61 str r2, [r3, #28]
- 13962 01e0 16E0 b .L670
- 13963 .L671:
- 6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 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*/
- 6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 361
- 6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 13964 .loc 1 6452 7
- 13965 01e2 7B68 ldr r3, [r7, #4]
- 13966 01e4 1B68 ldr r3, [r3]
- 13967 01e6 1022 movs r2, #16
- 13968 01e8 DA61 str r2, [r3, #28]
- 6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
- 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 13969 .loc 1 6455 23
- 13970 01ea 7B68 ldr r3, [r7, #4]
- 13971 01ec 5B6C ldr r3, [r3, #68]
- 13972 01ee 43F00402 orr r2, r3, #4
- 13973 01f2 7B68 ldr r3, [r7, #4]
- 13974 01f4 5A64 str r2, [r3, #68]
- 6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
- 13975 .loc 1 6457 10
- 13976 01f6 FB68 ldr r3, [r7, #12]
- 13977 01f8 002B cmp r3, #0
- 13978 01fa 03D0 beq .L675
- 13979 .loc 1 6457 43 discriminator 1
- 13980 01fc FB68 ldr r3, [r7, #12]
- 13981 01fe B3F1807F cmp r3, #16777216
- 13982 0202 05D1 bne .L670
- 13983 .L675:
- 6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
- 13984 .loc 1 6460 9
- 13985 0204 7B68 ldr r3, [r7, #4]
- 13986 0206 5B6C ldr r3, [r3, #68]
- 13987 0208 1946 mov r1, r3
- 13988 020a 7868 ldr r0, [r7, #4]
- 13989 020c FFF7FEFF bl I2C_ITError
- 13990 .L670:
- 6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 13991 .loc 1 6465 14
- 13992 0210 7B68 ldr r3, [r7, #4]
- 13993 0212 0022 movs r2, #0
- 13994 0214 83F84220 strb r2, [r3, #66]
- 6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 13995 .loc 1 6466 17
- 13996 0218 7B68 ldr r3, [r7, #4]
- 13997 021a 0022 movs r2, #0
- 13998 021c 5A63 str r2, [r3, #52]
- 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
- 13999 .loc 1 6468 11
- 14000 021e 7B68 ldr r3, [r7, #4]
- 14001 0220 5B6C ldr r3, [r3, #68]
- 14002 .loc 1 6468 6
- 14003 0222 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 362
- 14004 0224 10D0 beq .L676
- 6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
- 14005 .loc 1 6471 5
- 14006 0226 7B68 ldr r3, [r7, #4]
- 14007 0228 5B6C ldr r3, [r3, #68]
- 14008 022a 1946 mov r1, r3
- 14009 022c 7868 ldr r0, [r7, #4]
- 14010 022e FFF7FEFF bl I2C_ITError
- 6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 */
- 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
- 14011 .loc 1 6474 13
- 14012 0232 7B68 ldr r3, [r7, #4]
- 14013 0234 93F84130 ldrb r3, [r3, #65]
- 14014 0238 DBB2 uxtb r3, r3
- 14015 .loc 1 6474 8
- 14016 023a 282B cmp r3, #40
- 14017 023c 41D1 bne .L680
- 6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
- 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
- 14018 .loc 1 6477 7
- 14019 023e 7969 ldr r1, [r7, #20]
- 14020 0240 7868 ldr r0, [r7, #4]
- 14021 0242 FFF7FEFF bl I2C_ITListenCplt
- 6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
- 6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
- 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 */
- 6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
- 6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
- 6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
- 6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 363
- 6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
- 6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
- 6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
- 6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
- 6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14022 .loc 1 6530 1
- 14023 0246 3CE0 b .L680
- 14024 .L676:
- 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14025 .loc 1 6480 16
- 14026 0248 7B68 ldr r3, [r7, #4]
- 14027 024a DB6A ldr r3, [r3, #44]
- 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14028 .loc 1 6480 11
- 14029 024c 13F5803F cmn r3, #65536
- 14030 0250 14D0 beq .L678
- 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14031 .loc 1 6483 5
- 14032 0252 7868 ldr r0, [r7, #4]
- 14033 0254 FFF7FEFF bl I2C_ITSlaveSeqCplt
- 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 14034 .loc 1 6485 23
- 14035 0258 7B68 ldr r3, [r7, #4]
- 14036 025a 1D4A ldr r2, .L681+4
- 14037 025c DA62 str r2, [r3, #44]
- 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 14038 .loc 1 6486 17
- 14039 025e 7B68 ldr r3, [r7, #4]
- 14040 0260 2022 movs r2, #32
- 14041 0262 83F84120 strb r2, [r3, #65]
- 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14042 .loc 1 6487 25
- 14043 0266 7B68 ldr r3, [r7, #4]
- 14044 0268 0022 movs r2, #0
- 14045 026a 1A63 str r2, [r3, #48]
- 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14046 .loc 1 6490 5
- 14047 026c 7B68 ldr r3, [r7, #4]
- 14048 026e 0022 movs r2, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 364
- 14049 0270 83F84020 strb r2, [r3, #64]
- 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 14050 .loc 1 6496 5
- 14051 0274 7868 ldr r0, [r7, #4]
- 14052 0276 FFF7FEFF bl HAL_I2C_ListenCpltCallback
- 14053 .loc 1 6530 1
- 14054 027a 22E0 b .L680
- 14055 .L678:
- 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14056 .loc 1 6500 16
- 14057 027c 7B68 ldr r3, [r7, #4]
- 14058 027e 93F84130 ldrb r3, [r3, #65]
- 14059 0282 DBB2 uxtb r3, r3
- 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14060 .loc 1 6500 11
- 14061 0284 222B cmp r3, #34
- 14062 0286 0ED1 bne .L679
- 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 14063 .loc 1 6502 17
- 14064 0288 7B68 ldr r3, [r7, #4]
- 14065 028a 2022 movs r2, #32
- 14066 028c 83F84120 strb r2, [r3, #65]
- 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14067 .loc 1 6503 25
- 14068 0290 7B68 ldr r3, [r7, #4]
- 14069 0292 0022 movs r2, #0
- 14070 0294 1A63 str r2, [r3, #48]
- 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14071 .loc 1 6506 5
- 14072 0296 7B68 ldr r3, [r7, #4]
- 14073 0298 0022 movs r2, #0
- 14074 029a 83F84020 strb r2, [r3, #64]
- 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 14075 .loc 1 6512 5
- 14076 029e 7868 ldr r0, [r7, #4]
- 14077 02a0 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
- 14078 .loc 1 6530 1
- 14079 02a4 0DE0 b .L680
- 14080 .L679:
- 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 14081 .loc 1 6517 17
- 14082 02a6 7B68 ldr r3, [r7, #4]
- 14083 02a8 2022 movs r2, #32
- 14084 02aa 83F84120 strb r2, [r3, #65]
- 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14085 .loc 1 6518 25
- 14086 02ae 7B68 ldr r3, [r7, #4]
- 14087 02b0 0022 movs r2, #0
- 14088 02b2 1A63 str r2, [r3, #48]
- 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14089 .loc 1 6521 5
- 14090 02b4 7B68 ldr r3, [r7, #4]
- 14091 02b6 0022 movs r2, #0
- 14092 02b8 83F84020 strb r2, [r3, #64]
- 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 14093 .loc 1 6527 5
- 14094 02bc 7868 ldr r0, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 365
- 14095 02be FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
- 14096 .L680:
- 14097 .loc 1 6530 1
- 14098 02c2 00BF nop
- 14099 02c4 1837 adds r7, r7, #24
- 14100 .LCFI323:
- 14101 .cfi_def_cfa_offset 8
- 14102 02c6 BD46 mov sp, r7
- 14103 .LCFI324:
- 14104 .cfi_def_cfa_register 13
- 14105 @ sp needed
- 14106 02c8 80BD pop {r7, pc}
- 14107 .L682:
- 14108 02ca 00BF .align 2
- 14109 .L681:
- 14110 02cc 00E800FE .word -33495040
- 14111 02d0 0000FFFF .word -65536
- 14112 .cfi_endproc
- 14113 .LFE191:
- 14115 .section .text.I2C_ITListenCplt,"ax",%progbits
- 14116 .align 1
- 14117 .syntax unified
- 14118 .thumb
- 14119 .thumb_func
- 14121 I2C_ITListenCplt:
- 14122 .LFB192:
- 6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process.
- 6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
- 6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
- 6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14123 .loc 1 6539 1
- 14124 .cfi_startproc
- 14125 @ args = 0, pretend = 0, frame = 8
- 14126 @ frame_needed = 1, uses_anonymous_args = 0
- 14127 0000 80B5 push {r7, lr}
- 14128 .LCFI325:
- 14129 .cfi_def_cfa_offset 8
- 14130 .cfi_offset 7, -8
- 14131 .cfi_offset 14, -4
- 14132 0002 82B0 sub sp, sp, #8
- 14133 .LCFI326:
- 14134 .cfi_def_cfa_offset 16
- 14135 0004 00AF add r7, sp, #0
- 14136 .LCFI327:
- 14137 .cfi_def_cfa_register 7
- 14138 0006 7860 str r0, [r7, #4]
- 14139 0008 3960 str r1, [r7]
- 6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
- 6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 14140 .loc 1 6541 21
- 14141 000a 7B68 ldr r3, [r7, #4]
- 14142 000c 264A ldr r2, .L685
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 366
- 14143 000e DA62 str r2, [r3, #44]
- 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 14144 .loc 1 6542 23
- 14145 0010 7B68 ldr r3, [r7, #4]
- 14146 0012 0022 movs r2, #0
- 14147 0014 1A63 str r2, [r3, #48]
- 6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 14148 .loc 1 6543 15
- 14149 0016 7B68 ldr r3, [r7, #4]
- 14150 0018 2022 movs r2, #32
- 14151 001a 83F84120 strb r2, [r3, #65]
- 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 14152 .loc 1 6544 14
- 14153 001e 7B68 ldr r3, [r7, #4]
- 14154 0020 0022 movs r2, #0
- 14155 0022 83F84220 strb r2, [r3, #66]
- 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 14156 .loc 1 6545 17
- 14157 0026 7B68 ldr r3, [r7, #4]
- 14158 0028 0022 movs r2, #0
- 14159 002a 5A63 str r2, [r3, #52]
- 6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
- 6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
- 14160 .loc 1 6548 7
- 14161 002c 3B68 ldr r3, [r7]
- 14162 002e 9B08 lsrs r3, r3, #2
- 14163 0030 03F00103 and r3, r3, #1
- 14164 .loc 1 6548 6
- 14165 0034 002B cmp r3, #0
- 14166 0036 22D0 beq .L684
- 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
- 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
- 14167 .loc 1 6551 36
- 14168 0038 7B68 ldr r3, [r7, #4]
- 14169 003a 1B68 ldr r3, [r3]
- 14170 .loc 1 6551 46
- 14171 003c 5A6A ldr r2, [r3, #36]
- 14172 .loc 1 6551 10
- 14173 003e 7B68 ldr r3, [r7, #4]
- 14174 0040 5B6A ldr r3, [r3, #36]
- 14175 .loc 1 6551 23
- 14176 0042 D2B2 uxtb r2, r2
- 14177 .loc 1 6551 21
- 14178 0044 1A70 strb r2, [r3]
- 6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
- 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
- 14179 .loc 1 6554 9
- 14180 0046 7B68 ldr r3, [r7, #4]
- 14181 0048 5B6A ldr r3, [r3, #36]
- 14182 .loc 1 6554 19
- 14183 004a 5A1C adds r2, r3, #1
- 14184 004c 7B68 ldr r3, [r7, #4]
- 14185 004e 5A62 str r2, [r3, #36]
- 6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 367
- 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
- 14186 .loc 1 6556 14
- 14187 0050 7B68 ldr r3, [r7, #4]
- 14188 0052 1B8D ldrh r3, [r3, #40]
- 14189 .loc 1 6556 8
- 14190 0054 002B cmp r3, #0
- 14191 0056 12D0 beq .L684
- 6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
- 14192 .loc 1 6558 11
- 14193 0058 7B68 ldr r3, [r7, #4]
- 14194 005a 1B8D ldrh r3, [r3, #40]
- 14195 .loc 1 6558 21
- 14196 005c 013B subs r3, r3, #1
- 14197 005e 9AB2 uxth r2, r3
- 14198 0060 7B68 ldr r3, [r7, #4]
- 14199 0062 1A85 strh r2, [r3, #40] @ movhi
- 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
- 14200 .loc 1 6559 11
- 14201 0064 7B68 ldr r3, [r7, #4]
- 14202 0066 5B8D ldrh r3, [r3, #42] @ movhi
- 14203 0068 9BB2 uxth r3, r3
- 14204 .loc 1 6559 22
- 14205 006a 013B subs r3, r3, #1
- 14206 006c 9AB2 uxth r2, r3
- 14207 006e 7B68 ldr r3, [r7, #4]
- 14208 0070 5A85 strh r2, [r3, #42] @ movhi
- 6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
- 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 14209 .loc 1 6562 23
- 14210 0072 7B68 ldr r3, [r7, #4]
- 14211 0074 5B6C ldr r3, [r3, #68]
- 14212 0076 43F00402 orr r2, r3, #4
- 14213 007a 7B68 ldr r3, [r7, #4]
- 14214 007c 5A64 str r2, [r3, #68]
- 14215 .L684:
- 6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/
- 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);
- 14216 .loc 1 6567 3
- 14217 007e 48F20301 movw r1, #32771
- 14218 0082 7868 ldr r0, [r7, #4]
- 14219 0084 FFF7FEFF bl I2C_Disable_IRQ
- 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
- 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 14220 .loc 1 6570 3
- 14221 0088 7B68 ldr r3, [r7, #4]
- 14222 008a 1B68 ldr r3, [r3]
- 14223 008c 1022 movs r2, #16
- 14224 008e DA61 str r2, [r3, #28]
- 6571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 368
- 14225 .loc 1 6573 3
- 14226 0090 7B68 ldr r3, [r7, #4]
- 14227 0092 0022 movs r2, #0
- 14228 0094 83F84020 strb r2, [r3, #64]
- 6574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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 */
- 6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
- 6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
- 14229 .loc 1 6579 3
- 14230 0098 7868 ldr r0, [r7, #4]
- 14231 009a FFF7FEFF bl HAL_I2C_ListenCpltCallback
- 6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14232 .loc 1 6581 1
- 14233 009e 00BF nop
- 14234 00a0 0837 adds r7, r7, #8
- 14235 .LCFI328:
- 14236 .cfi_def_cfa_offset 8
- 14237 00a2 BD46 mov sp, r7
- 14238 .LCFI329:
- 14239 .cfi_def_cfa_register 13
- 14240 @ sp needed
- 14241 00a4 80BD pop {r7, pc}
- 14242 .L686:
- 14243 00a6 00BF .align 2
- 14244 .L685:
- 14245 00a8 0000FFFF .word -65536
- 14246 .cfi_endproc
- 14247 .LFE192:
- 14249 .section .text.I2C_ITError,"ax",%progbits
- 14250 .align 1
- 14251 .syntax unified
- 14252 .thumb
- 14253 .thumb_func
- 14255 I2C_ITError:
- 14256 .LFB193:
- 6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process.
- 6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
- 6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
- 6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14257 .loc 1 6590 1
- 14258 .cfi_startproc
- 14259 @ args = 0, pretend = 0, frame = 16
- 14260 @ frame_needed = 1, uses_anonymous_args = 0
- 14261 0000 80B5 push {r7, lr}
- 14262 .LCFI330:
- 14263 .cfi_def_cfa_offset 8
- 14264 .cfi_offset 7, -8
- 14265 .cfi_offset 14, -4
- 14266 0002 84B0 sub sp, sp, #16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 369
- 14267 .LCFI331:
- 14268 .cfi_def_cfa_offset 24
- 14269 0004 00AF add r7, sp, #0
- 14270 .LCFI332:
- 14271 .cfi_def_cfa_register 7
- 14272 0006 7860 str r0, [r7, #4]
- 14273 0008 3960 str r1, [r7]
- 6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
- 14274 .loc 1 6591 24
- 14275 000a 7B68 ldr r3, [r7, #4]
- 14276 000c 93F84130 ldrb r3, [r3, #65]
- 14277 0010 FB73 strb r3, [r7, #15]
- 6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
- 6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
- 6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 14278 .loc 1 6596 23
- 14279 0012 7B68 ldr r3, [r7, #4]
- 14280 0014 0022 movs r2, #0
- 14281 0016 83F84220 strb r2, [r3, #66]
- 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
- 14282 .loc 1 6597 23
- 14283 001a 7B68 ldr r3, [r7, #4]
- 14284 001c 6D4A ldr r2, .L707
- 14285 001e DA62 str r2, [r3, #44]
- 6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
- 14286 .loc 1 6598 23
- 14287 0020 7B68 ldr r3, [r7, #4]
- 14288 0022 0022 movs r2, #0
- 14289 0024 5A85 strh r2, [r3, #42] @ movhi
- 6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */
- 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
- 14290 .loc 1 6601 19
- 14291 0026 7B68 ldr r3, [r7, #4]
- 14292 0028 5A6C ldr r2, [r3, #68]
- 14293 002a 3B68 ldr r3, [r7]
- 14294 002c 1A43 orrs r2, r2, r3
- 14295 002e 7B68 ldr r3, [r7, #4]
- 14296 0030 5A64 str r2, [r3, #68]
- 6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
- 6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
- 14297 .loc 1 6604 6
- 14298 0032 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 14299 0034 282B cmp r3, #40
- 14300 0036 05D0 beq .L688
- 14301 .loc 1 6604 50 discriminator 1
- 14302 0038 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 14303 003a 292B cmp r3, #41
- 14304 003c 02D0 beq .L688
- 6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
- 14305 .loc 1 6605 50
- 14306 003e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
- 14307 0040 2A2B cmp r3, #42
- 14308 0042 0BD1 bne .L689
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 370
- 14309 .L688:
- 6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
- 6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
- 6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
- 14310 .loc 1 6609 5
- 14311 0044 0321 movs r1, #3
- 14312 0046 7868 ldr r0, [r7, #4]
- 14313 0048 FFF7FEFF bl I2C_Disable_IRQ
- 6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
- 6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
- 14314 .loc 1 6612 25
- 14315 004c 7B68 ldr r3, [r7, #4]
- 14316 004e 2822 movs r2, #40
- 14317 0050 83F84120 strb r2, [r3, #65]
- 6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
- 14318 .loc 1 6613 25
- 14319 0054 7B68 ldr r3, [r7, #4]
- 14320 0056 604A ldr r2, .L707+4
- 14321 0058 5A63 str r2, [r3, #52]
- 14322 005a 30E0 b .L690
- 14323 .L689:
- 6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */
- 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);
- 14324 .loc 1 6618 5
- 14325 005c 48F20301 movw r1, #32771
- 14326 0060 7868 ldr r0, [r7, #4]
- 14327 0062 FFF7FEFF bl I2C_Disable_IRQ
- 6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 14328 .loc 1 6621 5
- 14329 0066 7868 ldr r0, [r7, #4]
- 14330 0068 FFF7FEFF bl I2C_Flush_TXDR
- 6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
- 6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */
- 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
- 14331 .loc 1 6625 13
- 14332 006c 7B68 ldr r3, [r7, #4]
- 14333 006e 93F84130 ldrb r3, [r3, #65]
- 14334 0072 DBB2 uxtb r3, r3
- 14335 .loc 1 6625 8
- 14336 0074 602B cmp r3, #96
- 14337 0076 1FD0 beq .L691
- 6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
- 6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 14338 .loc 1 6628 27
- 14339 0078 7B68 ldr r3, [r7, #4]
- 14340 007a 2022 movs r2, #32
- 14341 007c 83F84120 strb r2, [r3, #65]
- 6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 371
- 6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
- 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
- 14342 .loc 1 6631 11
- 14343 0080 7B68 ldr r3, [r7, #4]
- 14344 0082 1B68 ldr r3, [r3]
- 14345 0084 9B69 ldr r3, [r3, #24]
- 14346 0086 03F02003 and r3, r3, #32
- 14347 .loc 1 6631 10
- 14348 008a 202B cmp r3, #32
- 14349 008c 14D1 bne .L691
- 6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
- 14350 .loc 1 6633 13
- 14351 008e 7B68 ldr r3, [r7, #4]
- 14352 0090 1B68 ldr r3, [r3]
- 14353 0092 9B69 ldr r3, [r3, #24]
- 14354 0094 03F01003 and r3, r3, #16
- 14355 .loc 1 6633 12
- 14356 0098 102B cmp r3, #16
- 14357 009a 09D1 bne .L692
- 6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 14358 .loc 1 6635 11
- 14359 009c 7B68 ldr r3, [r7, #4]
- 14360 009e 1B68 ldr r3, [r3]
- 14361 00a0 1022 movs r2, #16
- 14362 00a2 DA61 str r2, [r3, #28]
- 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
- 14363 .loc 1 6636 27
- 14364 00a4 7B68 ldr r3, [r7, #4]
- 14365 00a6 5B6C ldr r3, [r3, #68]
- 14366 00a8 43F00402 orr r2, r3, #4
- 14367 00ac 7B68 ldr r3, [r7, #4]
- 14368 00ae 5A64 str r2, [r3, #68]
- 14369 .L692:
- 6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 14370 .loc 1 6640 9
- 14371 00b0 7B68 ldr r3, [r7, #4]
- 14372 00b2 1B68 ldr r3, [r3]
- 14373 00b4 2022 movs r2, #32
- 14374 00b6 DA61 str r2, [r3, #28]
- 14375 .L691:
- 6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
- 14376 .loc 1 6644 25
- 14377 00b8 7B68 ldr r3, [r7, #4]
- 14378 00ba 0022 movs r2, #0
- 14379 00bc 5A63 str r2, [r3, #52]
- 14380 .L690:
- 6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 372
- 6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
- 14381 .loc 1 6648 20
- 14382 00be 7B68 ldr r3, [r7, #4]
- 14383 00c0 1B6B ldr r3, [r3, #48]
- 14384 00c2 BB60 str r3, [r7, #8]
- 6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
- 14385 .loc 1 6650 12
- 14386 00c4 7B68 ldr r3, [r7, #4]
- 14387 00c6 9B6B ldr r3, [r3, #56]
- 14388 .loc 1 6650 6
- 14389 00c8 002B cmp r3, #0
- 14390 00ca 39D0 beq .L693
- 14391 .loc 1 6650 30 discriminator 1
- 14392 00cc BB68 ldr r3, [r7, #8]
- 14393 00ce 112B cmp r3, #17
- 14394 00d0 02D0 beq .L694
- 14395 .loc 1 6650 81 discriminator 2
- 14396 00d2 BB68 ldr r3, [r7, #8]
- 14397 00d4 212B cmp r3, #33
- 14398 00d6 33D1 bne .L693
- 14399 .L694:
- 6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
- 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
- 14400 .loc 1 6653 14
- 14401 00d8 7B68 ldr r3, [r7, #4]
- 14402 00da 1B68 ldr r3, [r3]
- 14403 .loc 1 6653 24
- 14404 00dc 1B68 ldr r3, [r3]
- 14405 .loc 1 6653 30
- 14406 00de 03F48043 and r3, r3, #16384
- 14407 .loc 1 6653 8
- 14408 00e2 B3F5804F cmp r3, #16384
- 14409 00e6 07D1 bne .L695
- 6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 14410 .loc 1 6655 11
- 14411 00e8 7B68 ldr r3, [r7, #4]
- 14412 00ea 1B68 ldr r3, [r3]
- 14413 .loc 1 6655 27
- 14414 00ec 1A68 ldr r2, [r3]
- 14415 .loc 1 6655 11
- 14416 00ee 7B68 ldr r3, [r7, #4]
- 14417 00f0 1B68 ldr r3, [r3]
- 14418 .loc 1 6655 27
- 14419 00f2 22F48042 bic r2, r2, #16384
- 14420 00f6 1A60 str r2, [r3]
- 14421 .L695:
- 6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
- 14422 .loc 1 6658 9
- 14423 00f8 7B68 ldr r3, [r7, #4]
- 14424 00fa 9B6B ldr r3, [r3, #56]
- 14425 00fc 1846 mov r0, r3
- 14426 00fe FFF7FEFF bl HAL_DMA_GetState
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 373
- 14427 0102 0346 mov r3, r0
- 14428 .loc 1 6658 8
- 14429 0104 012B cmp r3, #1
- 14430 0106 17D0 beq .L696
- 6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
- 14431 .loc 1 6662 11
- 14432 0108 7B68 ldr r3, [r7, #4]
- 14433 010a 9B6B ldr r3, [r3, #56]
- 14434 .loc 1 6662 39
- 14435 010c 334A ldr r2, .L707+8
- 14436 010e 5A63 str r2, [r3, #52]
- 6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 14437 .loc 1 6665 7
- 14438 0110 7B68 ldr r3, [r7, #4]
- 14439 0112 0022 movs r2, #0
- 14440 0114 83F84020 strb r2, [r3, #64]
- 6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
- 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
- 14441 .loc 1 6668 11
- 14442 0118 7B68 ldr r3, [r7, #4]
- 14443 011a 9B6B ldr r3, [r3, #56]
- 14444 011c 1846 mov r0, r3
- 14445 011e FFF7FEFF bl HAL_DMA_Abort_IT
- 14446 0122 0346 mov r3, r0
- 14447 .loc 1 6668 10
- 14448 0124 002B cmp r3, #0
- 14449 0126 4DD0 beq .L704
- 6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
- 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
- 14450 .loc 1 6671 13
- 14451 0128 7B68 ldr r3, [r7, #4]
- 14452 012a 9B6B ldr r3, [r3, #56]
- 14453 .loc 1 6671 21
- 14454 012c 5B6B ldr r3, [r3, #52]
- 14455 .loc 1 6671 45
- 14456 012e 7A68 ldr r2, [r7, #4]
- 14457 0130 926B ldr r2, [r2, #56]
- 14458 .loc 1 6671 9
- 14459 0132 1046 mov r0, r2
- 14460 0134 9847 blx r3
- 14461 .LVL7:
- 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14462 .loc 1 6658 8
- 14463 0136 45E0 b .L704
- 14464 .L696:
- 6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 374
- 14465 .loc 1 6676 7
- 14466 0138 7868 ldr r0, [r7, #4]
- 14467 013a FFF7FEFF bl I2C_TreatErrorCallback
- 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14468 .loc 1 6658 8
- 14469 013e 41E0 b .L704
- 14470 .L693:
- 6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
- 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
- 14471 .loc 1 6680 17
- 14472 0140 7B68 ldr r3, [r7, #4]
- 14473 0142 DB6B ldr r3, [r3, #60]
- 14474 .loc 1 6680 11
- 14475 0144 002B cmp r3, #0
- 14476 0146 39D0 beq .L699
- 14477 .loc 1 6680 35 discriminator 1
- 14478 0148 BB68 ldr r3, [r7, #8]
- 14479 014a 122B cmp r3, #18
- 14480 014c 02D0 beq .L700
- 14481 .loc 1 6680 86 discriminator 2
- 14482 014e BB68 ldr r3, [r7, #8]
- 14483 0150 222B cmp r3, #34
- 14484 0152 33D1 bne .L699
- 14485 .L700:
- 6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
- 6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
- 14486 .loc 1 6683 14
- 14487 0154 7B68 ldr r3, [r7, #4]
- 14488 0156 1B68 ldr r3, [r3]
- 14489 .loc 1 6683 24
- 14490 0158 1B68 ldr r3, [r3]
- 14491 .loc 1 6683 30
- 14492 015a 03F40043 and r3, r3, #32768
- 14493 .loc 1 6683 8
- 14494 015e B3F5004F cmp r3, #32768
- 14495 0162 07D1 bne .L701
- 6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 14496 .loc 1 6685 11
- 14497 0164 7B68 ldr r3, [r7, #4]
- 14498 0166 1B68 ldr r3, [r3]
- 14499 .loc 1 6685 27
- 14500 0168 1A68 ldr r2, [r3]
- 14501 .loc 1 6685 11
- 14502 016a 7B68 ldr r3, [r7, #4]
- 14503 016c 1B68 ldr r3, [r3]
- 14504 .loc 1 6685 27
- 14505 016e 22F40042 bic r2, r2, #32768
- 14506 0172 1A60 str r2, [r3]
- 14507 .L701:
- 6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
- 14508 .loc 1 6688 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 375
- 14509 0174 7B68 ldr r3, [r7, #4]
- 14510 0176 DB6B ldr r3, [r3, #60]
- 14511 0178 1846 mov r0, r3
- 14512 017a FFF7FEFF bl HAL_DMA_GetState
- 14513 017e 0346 mov r3, r0
- 14514 .loc 1 6688 8
- 14515 0180 012B cmp r3, #1
- 14516 0182 17D0 beq .L702
- 6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
- 6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
- 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
- 14517 .loc 1 6692 11
- 14518 0184 7B68 ldr r3, [r7, #4]
- 14519 0186 DB6B ldr r3, [r3, #60]
- 14520 .loc 1 6692 39
- 14521 0188 144A ldr r2, .L707+8
- 14522 018a 5A63 str r2, [r3, #52]
- 6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 14523 .loc 1 6695 7
- 14524 018c 7B68 ldr r3, [r7, #4]
- 14525 018e 0022 movs r2, #0
- 14526 0190 83F84020 strb r2, [r3, #64]
- 6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
- 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
- 14527 .loc 1 6698 11
- 14528 0194 7B68 ldr r3, [r7, #4]
- 14529 0196 DB6B ldr r3, [r3, #60]
- 14530 0198 1846 mov r0, r3
- 14531 019a FFF7FEFF bl HAL_DMA_Abort_IT
- 14532 019e 0346 mov r3, r0
- 14533 .loc 1 6698 10
- 14534 01a0 002B cmp r3, #0
- 14535 01a2 11D0 beq .L705
- 6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
- 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
- 14536 .loc 1 6701 13
- 14537 01a4 7B68 ldr r3, [r7, #4]
- 14538 01a6 DB6B ldr r3, [r3, #60]
- 14539 .loc 1 6701 21
- 14540 01a8 5B6B ldr r3, [r3, #52]
- 14541 .loc 1 6701 45
- 14542 01aa 7A68 ldr r2, [r7, #4]
- 14543 01ac D26B ldr r2, [r2, #60]
- 14544 .loc 1 6701 9
- 14545 01ae 1046 mov r0, r2
- 14546 01b0 9847 blx r3
- 14547 .LVL8:
- 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14548 .loc 1 6688 8
- 14549 01b2 09E0 b .L705
- 14550 .L702:
- 6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 376
- 6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
- 14551 .loc 1 6706 7
- 14552 01b4 7868 ldr r0, [r7, #4]
- 14553 01b6 FFF7FEFF bl I2C_TreatErrorCallback
- 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14554 .loc 1 6688 8
- 14555 01ba 05E0 b .L705
- 14556 .L699:
- 6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
- 14557 .loc 1 6711 5
- 14558 01bc 7868 ldr r0, [r7, #4]
- 14559 01be FFF7FEFF bl I2C_TreatErrorCallback
- 6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14560 .loc 1 6713 1
- 14561 01c2 02E0 b .L706
- 14562 .L704:
- 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14563 .loc 1 6658 8
- 14564 01c4 00BF nop
- 14565 01c6 00E0 b .L706
- 14566 .L705:
- 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14567 .loc 1 6688 8
- 14568 01c8 00BF nop
- 14569 .L706:
- 14570 .loc 1 6713 1
- 14571 01ca 00BF nop
- 14572 01cc 1037 adds r7, r7, #16
- 14573 .LCFI333:
- 14574 .cfi_def_cfa_offset 8
- 14575 01ce BD46 mov sp, r7
- 14576 .LCFI334:
- 14577 .cfi_def_cfa_register 13
- 14578 @ sp needed
- 14579 01d0 80BD pop {r7, pc}
- 14580 .L708:
- 14581 01d2 00BF .align 2
- 14582 .L707:
- 14583 01d4 0000FFFF .word -65536
- 14584 01d8 00000000 .word I2C_Slave_ISR_IT
- 14585 01dc 00000000 .word I2C_DMAAbort
- 14586 .cfi_endproc
- 14587 .LFE193:
- 14589 .section .text.I2C_TreatErrorCallback,"ax",%progbits
- 14590 .align 1
- 14591 .syntax unified
- 14592 .thumb
- 14593 .thumb_func
- 14595 I2C_TreatErrorCallback:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 377
- 14596 .LFB194:
- 6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment.
- 6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
- 6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14597 .loc 1 6721 1
- 14598 .cfi_startproc
- 14599 @ args = 0, pretend = 0, frame = 8
- 14600 @ frame_needed = 1, uses_anonymous_args = 0
- 14601 0000 80B5 push {r7, lr}
- 14602 .LCFI335:
- 14603 .cfi_def_cfa_offset 8
- 14604 .cfi_offset 7, -8
- 14605 .cfi_offset 14, -4
- 14606 0002 82B0 sub sp, sp, #8
- 14607 .LCFI336:
- 14608 .cfi_def_cfa_offset 16
- 14609 0004 00AF add r7, sp, #0
- 14610 .LCFI337:
- 14611 .cfi_def_cfa_register 7
- 14612 0006 7860 str r0, [r7, #4]
- 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
- 14613 .loc 1 6722 11
- 14614 0008 7B68 ldr r3, [r7, #4]
- 14615 000a 93F84130 ldrb r3, [r3, #65]
- 14616 000e DBB2 uxtb r3, r3
- 14617 .loc 1 6722 6
- 14618 0010 602B cmp r3, #96
- 14619 0012 0ED1 bne .L710
- 6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 14620 .loc 1 6724 17
- 14621 0014 7B68 ldr r3, [r7, #4]
- 14622 0016 2022 movs r2, #32
- 14623 0018 83F84120 strb r2, [r3, #65]
- 6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 14624 .loc 1 6725 25
- 14625 001c 7B68 ldr r3, [r7, #4]
- 14626 001e 0022 movs r2, #0
- 14627 0020 1A63 str r2, [r3, #48]
- 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 14628 .loc 1 6728 5
- 14629 0022 7B68 ldr r3, [r7, #4]
- 14630 0024 0022 movs r2, #0
- 14631 0026 83F84020 strb r2, [r3, #64]
- 6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
- 6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 378
- 14632 .loc 1 6734 5
- 14633 002a 7868 ldr r0, [r7, #4]
- 14634 002c FFF7FEFF bl HAL_I2C_AbortCpltCallback
- 6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
- 6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
- 6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
- 6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
- 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
- 6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14635 .loc 1 6751 1
- 14636 0030 09E0 b .L712
- 14637 .L710:
- 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14638 .loc 1 6739 25
- 14639 0032 7B68 ldr r3, [r7, #4]
- 14640 0034 0022 movs r2, #0
- 14641 0036 1A63 str r2, [r3, #48]
- 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14642 .loc 1 6742 5
- 14643 0038 7B68 ldr r3, [r7, #4]
- 14644 003a 0022 movs r2, #0
- 14645 003c 83F84020 strb r2, [r3, #64]
- 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
- 14646 .loc 1 6748 5
- 14647 0040 7868 ldr r0, [r7, #4]
- 14648 0042 FFF7FEFF bl HAL_I2C_ErrorCallback
- 14649 .L712:
- 14650 .loc 1 6751 1
- 14651 0046 00BF nop
- 14652 0048 0837 adds r7, r7, #8
- 14653 .LCFI338:
- 14654 .cfi_def_cfa_offset 8
- 14655 004a BD46 mov sp, r7
- 14656 .LCFI339:
- 14657 .cfi_def_cfa_register 13
- 14658 @ sp needed
- 14659 004c 80BD pop {r7, pc}
- 14660 .cfi_endproc
- 14661 .LFE194:
- 14663 .section .text.I2C_Flush_TXDR,"ax",%progbits
- 14664 .align 1
- 14665 .syntax unified
- 14666 .thumb
- 14667 .thumb_func
- 14669 I2C_Flush_TXDR:
- 14670 .LFB195:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 379
- 6752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
- 6755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 6756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
- 6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14671 .loc 1 6759 1
- 14672 .cfi_startproc
- 14673 @ args = 0, pretend = 0, frame = 8
- 14674 @ frame_needed = 1, uses_anonymous_args = 0
- 14675 @ link register save eliminated.
- 14676 0000 80B4 push {r7}
- 14677 .LCFI340:
- 14678 .cfi_def_cfa_offset 4
- 14679 .cfi_offset 7, -4
- 14680 0002 83B0 sub sp, sp, #12
- 14681 .LCFI341:
- 14682 .cfi_def_cfa_offset 16
- 14683 0004 00AF add r7, sp, #0
- 14684 .LCFI342:
- 14685 .cfi_def_cfa_register 7
- 14686 0006 7860 str r0, [r7, #4]
- 6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */
- 6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
- 6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
- 14687 .loc 1 6762 7
- 14688 0008 7B68 ldr r3, [r7, #4]
- 14689 000a 1B68 ldr r3, [r3]
- 14690 000c 9B69 ldr r3, [r3, #24]
- 14691 000e 03F00203 and r3, r3, #2
- 14692 .loc 1 6762 6
- 14693 0012 022B cmp r3, #2
- 14694 0014 03D1 bne .L714
- 6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
- 14695 .loc 1 6764 9
- 14696 0016 7B68 ldr r3, [r7, #4]
- 14697 0018 1B68 ldr r3, [r3]
- 14698 .loc 1 6764 26
- 14699 001a 0022 movs r2, #0
- 14700 001c 9A62 str r2, [r3, #40]
- 14701 .L714:
- 6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */
- 6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
- 14702 .loc 1 6768 7
- 14703 001e 7B68 ldr r3, [r7, #4]
- 14704 0020 1B68 ldr r3, [r3]
- 14705 0022 9B69 ldr r3, [r3, #24]
- 14706 0024 03F00103 and r3, r3, #1
- 14707 .loc 1 6768 6
- 14708 0028 012B cmp r3, #1
- 14709 002a 07D0 beq .L716
- 6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 380
- 6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
- 14710 .loc 1 6770 5
- 14711 002c 7B68 ldr r3, [r7, #4]
- 14712 002e 1B68 ldr r3, [r3]
- 14713 0030 9A69 ldr r2, [r3, #24]
- 14714 0032 7B68 ldr r3, [r7, #4]
- 14715 0034 1B68 ldr r3, [r3]
- 14716 0036 42F00102 orr r2, r2, #1
- 14717 003a 9A61 str r2, [r3, #24]
- 14718 .L716:
- 6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14719 .loc 1 6772 1
- 14720 003c 00BF nop
- 14721 003e 0C37 adds r7, r7, #12
- 14722 .LCFI343:
- 14723 .cfi_def_cfa_offset 4
- 14724 0040 BD46 mov sp, r7
- 14725 .LCFI344:
- 14726 .cfi_def_cfa_register 13
- 14727 @ sp needed
- 14728 0042 5DF8047B ldr r7, [sp], #4
- 14729 .LCFI345:
- 14730 .cfi_restore 7
- 14731 .cfi_def_cfa_offset 0
- 14732 0046 7047 bx lr
- 14733 .cfi_endproc
- 14734 .LFE195:
- 14736 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
- 14737 .align 1
- 14738 .syntax unified
- 14739 .thumb
- 14740 .thumb_func
- 14742 I2C_DMAMasterTransmitCplt:
- 14743 .LFB196:
- 6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
- 6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
- 6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
- 6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14744 .loc 1 6780 1
- 14745 .cfi_startproc
- 14746 @ args = 0, pretend = 0, frame = 16
- 14747 @ frame_needed = 1, uses_anonymous_args = 0
- 14748 0000 80B5 push {r7, lr}
- 14749 .LCFI346:
- 14750 .cfi_def_cfa_offset 8
- 14751 .cfi_offset 7, -8
- 14752 .cfi_offset 14, -4
- 14753 0002 84B0 sub sp, sp, #16
- 14754 .LCFI347:
- 14755 .cfi_def_cfa_offset 24
- 14756 0004 00AF add r7, sp, #0
- 14757 .LCFI348:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 381
- 14758 .cfi_def_cfa_register 7
- 14759 0006 7860 str r0, [r7, #4]
- 6781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
- 6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
- 14760 .loc 1 6782 22
- 14761 0008 7B68 ldr r3, [r7, #4]
- 14762 000a 5B6A ldr r3, [r3, #36]
- 14763 000c FB60 str r3, [r7, #12]
- 6783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- 14764 .loc 1 6785 7
- 14765 000e FB68 ldr r3, [r7, #12]
- 14766 0010 1B68 ldr r3, [r3]
- 14767 .loc 1 6785 23
- 14768 0012 1A68 ldr r2, [r3]
- 14769 .loc 1 6785 7
- 14770 0014 FB68 ldr r3, [r7, #12]
- 14771 0016 1B68 ldr r3, [r3]
- 14772 .loc 1 6785 23
- 14773 0018 22F48042 bic r2, r2, #16384
- 14774 001c 1A60 str r2, [r3]
- 6786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
- 6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
- 14775 .loc 1 6788 11
- 14776 001e FB68 ldr r3, [r7, #12]
- 14777 0020 5B8D ldrh r3, [r3, #42] @ movhi
- 14778 0022 9BB2 uxth r3, r3
- 14779 .loc 1 6788 6
- 14780 0024 002B cmp r3, #0
- 14781 0026 04D1 bne .L718
- 6789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
- 6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
- 14782 .loc 1 6791 5
- 14783 0028 2021 movs r1, #32
- 14784 002a F868 ldr r0, [r7, #12]
- 14785 002c FFF7FEFF bl I2C_Enable_IRQ
- 6792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
- 6794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
- 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
- 6798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
- 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 6801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 6803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 6807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 382
- 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,
- 6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 6812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
- 6815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
- 6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
- 6820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14786 .loc 1 6822 1
- 14787 0030 2DE0 b .L723
- 14788 .L718:
- 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14789 .loc 1 6797 20
- 14790 0032 FB68 ldr r3, [r7, #12]
- 14791 0034 5B6A ldr r3, [r3, #36]
- 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14792 .loc 1 6797 27
- 14793 0036 FA68 ldr r2, [r7, #12]
- 14794 0038 128D ldrh r2, [r2, #40]
- 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14795 .loc 1 6797 20
- 14796 003a 1A44 add r2, r2, r3
- 14797 003c FB68 ldr r3, [r7, #12]
- 14798 003e 5A62 str r2, [r3, #36]
- 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14799 .loc 1 6800 13
- 14800 0040 FB68 ldr r3, [r7, #12]
- 14801 0042 5B8D ldrh r3, [r3, #42] @ movhi
- 14802 0044 9BB2 uxth r3, r3
- 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14803 .loc 1 6800 8
- 14804 0046 FF2B cmp r3, #255
- 14805 0048 03D9 bls .L720
- 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14806 .loc 1 6802 22
- 14807 004a FB68 ldr r3, [r7, #12]
- 14808 004c FF22 movs r2, #255
- 14809 004e 1A85 strh r2, [r3, #40] @ movhi
- 14810 0050 04E0 b .L721
- 14811 .L720:
- 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14812 .loc 1 6806 28
- 14813 0052 FB68 ldr r3, [r7, #12]
- 14814 0054 5B8D ldrh r3, [r3, #42] @ movhi
- 14815 0056 9AB2 uxth r2, r3
- 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14816 .loc 1 6806 22
- 14817 0058 FB68 ldr r3, [r7, #12]
- 14818 005a 1A85 strh r2, [r3, #40] @ movhi
- 14819 .L721:
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14820 .loc 1 6810 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 383
- 14821 005c FB68 ldr r3, [r7, #12]
- 14822 005e 986B ldr r0, [r3, #56]
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14823 .loc 1 6810 54
- 14824 0060 FB68 ldr r3, [r7, #12]
- 14825 0062 5B6A ldr r3, [r3, #36]
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14826 .loc 1 6810 9
- 14827 0064 1946 mov r1, r3
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14828 .loc 1 6810 81
- 14829 0066 FB68 ldr r3, [r7, #12]
- 14830 0068 1B68 ldr r3, [r3]
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14831 .loc 1 6810 76
- 14832 006a 2833 adds r3, r3, #40
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14833 .loc 1 6810 9
- 14834 006c 1A46 mov r2, r3
- 6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14835 .loc 1 6811 30
- 14836 006e FB68 ldr r3, [r7, #12]
- 14837 0070 1B8D ldrh r3, [r3, #40]
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14838 .loc 1 6810 9
- 14839 0072 FFF7FEFF bl HAL_DMA_Start_IT
- 14840 0076 0346 mov r3, r0
- 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 14841 .loc 1 6810 8
- 14842 0078 002B cmp r3, #0
- 14843 007a 04D0 beq .L722
- 6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14844 .loc 1 6814 7
- 14845 007c 1021 movs r1, #16
- 14846 007e F868 ldr r0, [r7, #12]
- 14847 0080 FFF7FEFF bl I2C_ITError
- 14848 .loc 1 6822 1
- 14849 0084 03E0 b .L723
- 14850 .L722:
- 6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14851 .loc 1 6819 7
- 14852 0086 4021 movs r1, #64
- 14853 0088 F868 ldr r0, [r7, #12]
- 14854 008a FFF7FEFF bl I2C_Enable_IRQ
- 14855 .L723:
- 14856 .loc 1 6822 1
- 14857 008e 00BF nop
- 14858 0090 1037 adds r7, r7, #16
- 14859 .LCFI349:
- 14860 .cfi_def_cfa_offset 8
- 14861 0092 BD46 mov sp, r7
- 14862 .LCFI350:
- 14863 .cfi_def_cfa_register 13
- 14864 @ sp needed
- 14865 0094 80BD pop {r7, pc}
- 14866 .cfi_endproc
- 14867 .LFE196:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 384
- 14869 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
- 14870 .align 1
- 14871 .syntax unified
- 14872 .thumb
- 14873 .thumb_func
- 14875 I2C_DMASlaveTransmitCplt:
- 14876 .LFB197:
- 6823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
- 6827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
- 6828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
- 6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14877 .loc 1 6831 1
- 14878 .cfi_startproc
- 14879 @ args = 0, pretend = 0, frame = 16
- 14880 @ frame_needed = 1, uses_anonymous_args = 0
- 14881 0000 80B5 push {r7, lr}
- 14882 .LCFI351:
- 14883 .cfi_def_cfa_offset 8
- 14884 .cfi_offset 7, -8
- 14885 .cfi_offset 14, -4
- 14886 0002 84B0 sub sp, sp, #16
- 14887 .LCFI352:
- 14888 .cfi_def_cfa_offset 24
- 14889 0004 00AF add r7, sp, #0
- 14890 .LCFI353:
- 14891 .cfi_def_cfa_register 7
- 14892 0006 7860 str r0, [r7, #4]
- 6832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
- 6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
- 14893 .loc 1 6833 22
- 14894 0008 7B68 ldr r3, [r7, #4]
- 14895 000a 5B6A ldr r3, [r3, #36]
- 14896 000c FB60 str r3, [r7, #12]
- 6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
- 14897 .loc 1 6834 12
- 14898 000e FB68 ldr r3, [r7, #12]
- 14899 0010 DB6A ldr r3, [r3, #44]
- 14900 0012 BB60 str r3, [r7, #8]
- 6835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
- 14901 .loc 1 6836 6
- 14902 0014 BB68 ldr r3, [r7, #8]
- 14903 0016 B3F1807F cmp r3, #16777216
- 14904 001a 02D0 beq .L725
- 14905 .loc 1 6836 38 discriminator 1
- 14906 001c BB68 ldr r3, [r7, #8]
- 14907 001e 002B cmp r3, #0
- 14908 0020 0AD1 bne .L727
- 14909 .L725:
- 6837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 385
- 14910 .loc 1 6839 9
- 14911 0022 FB68 ldr r3, [r7, #12]
- 14912 0024 1B68 ldr r3, [r3]
- 14913 .loc 1 6839 25
- 14914 0026 1A68 ldr r2, [r3]
- 14915 .loc 1 6839 9
- 14916 0028 FB68 ldr r3, [r7, #12]
- 14917 002a 1B68 ldr r3, [r3]
- 14918 .loc 1 6839 25
- 14919 002c 22F48042 bic r2, r2, #16384
- 14920 0030 1A60 str r2, [r3]
- 6840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
- 6842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- 6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 14921 .loc 1 6843 5
- 14922 0032 F868 ldr r0, [r7, #12]
- 14923 0034 FFF7FEFF bl I2C_ITSlaveSeqCplt
- 14924 .L727:
- 6844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
- 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 */
- 6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
- 6850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14925 .loc 1 6851 1
- 14926 0038 00BF nop
- 14927 003a 1037 adds r7, r7, #16
- 14928 .LCFI354:
- 14929 .cfi_def_cfa_offset 8
- 14930 003c BD46 mov sp, r7
- 14931 .LCFI355:
- 14932 .cfi_def_cfa_register 13
- 14933 @ sp needed
- 14934 003e 80BD pop {r7, pc}
- 14935 .cfi_endproc
- 14936 .LFE197:
- 14938 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
- 14939 .align 1
- 14940 .syntax unified
- 14941 .thumb
- 14942 .thumb_func
- 14944 I2C_DMAMasterReceiveCplt:
- 14945 .LFB198:
- 6852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
- 6856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
- 6857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
- 6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 14946 .loc 1 6860 1
- 14947 .cfi_startproc
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 386
- 14948 @ args = 0, pretend = 0, frame = 16
- 14949 @ frame_needed = 1, uses_anonymous_args = 0
- 14950 0000 80B5 push {r7, lr}
- 14951 .LCFI356:
- 14952 .cfi_def_cfa_offset 8
- 14953 .cfi_offset 7, -8
- 14954 .cfi_offset 14, -4
- 14955 0002 84B0 sub sp, sp, #16
- 14956 .LCFI357:
- 14957 .cfi_def_cfa_offset 24
- 14958 0004 00AF add r7, sp, #0
- 14959 .LCFI358:
- 14960 .cfi_def_cfa_register 7
- 14961 0006 7860 str r0, [r7, #4]
- 6861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
- 6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
- 14962 .loc 1 6862 22
- 14963 0008 7B68 ldr r3, [r7, #4]
- 14964 000a 5B6A ldr r3, [r3, #36]
- 14965 000c FB60 str r3, [r7, #12]
- 6863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 14966 .loc 1 6865 7
- 14967 000e FB68 ldr r3, [r7, #12]
- 14968 0010 1B68 ldr r3, [r3]
- 14969 .loc 1 6865 23
- 14970 0012 1A68 ldr r2, [r3]
- 14971 .loc 1 6865 7
- 14972 0014 FB68 ldr r3, [r7, #12]
- 14973 0016 1B68 ldr r3, [r3]
- 14974 .loc 1 6865 23
- 14975 0018 22F40042 bic r2, r2, #32768
- 14976 001c 1A60 str r2, [r3]
- 6866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
- 6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
- 14977 .loc 1 6868 11
- 14978 001e FB68 ldr r3, [r7, #12]
- 14979 0020 5B8D ldrh r3, [r3, #42] @ movhi
- 14980 0022 9BB2 uxth r3, r3
- 14981 .loc 1 6868 6
- 14982 0024 002B cmp r3, #0
- 14983 0026 04D1 bne .L729
- 6869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
- 6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
- 14984 .loc 1 6871 5
- 14985 0028 2021 movs r1, #32
- 14986 002a F868 ldr r0, [r7, #12]
- 14987 002c FFF7FEFF bl I2C_Enable_IRQ
- 6872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
- 6874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
- 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 387
- 6878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
- 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
- 6881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
- 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
- 6884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
- 6886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
- 6890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
- 6895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
- 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,
- 6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 6900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
- 6903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
- 6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
- 6908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 14988 .loc 1 6910 1
- 14989 0030 3BE0 b .L735
- 14990 .L729:
- 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14991 .loc 1 6877 20
- 14992 0032 FB68 ldr r3, [r7, #12]
- 14993 0034 5B6A ldr r3, [r3, #36]
- 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14994 .loc 1 6877 27
- 14995 0036 FA68 ldr r2, [r7, #12]
- 14996 0038 128D ldrh r2, [r2, #40]
- 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 14997 .loc 1 6877 20
- 14998 003a 1A44 add r2, r2, r3
- 14999 003c FB68 ldr r3, [r7, #12]
- 15000 003e 5A62 str r2, [r3, #36]
- 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15001 .loc 1 6880 13
- 15002 0040 FB68 ldr r3, [r7, #12]
- 15003 0042 5B8D ldrh r3, [r3, #42] @ movhi
- 15004 0044 9BB2 uxth r3, r3
- 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15005 .loc 1 6880 8
- 15006 0046 FF2B cmp r3, #255
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 388
- 15007 0048 11D9 bls .L731
- 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15008 .loc 1 6883 11
- 15009 004a FB68 ldr r3, [r7, #12]
- 15010 004c 1B68 ldr r3, [r3]
- 15011 004e 9B69 ldr r3, [r3, #24]
- 15012 0050 1B0C lsrs r3, r3, #16
- 15013 0052 DBB2 uxtb r3, r3
- 15014 0054 03F00103 and r3, r3, #1
- 15015 0058 DBB2 uxtb r3, r3
- 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15016 .loc 1 6883 10
- 15017 005a 012B cmp r3, #1
- 15018 005c 03D1 bne .L732
- 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15019 .loc 1 6885 24
- 15020 005e FB68 ldr r3, [r7, #12]
- 15021 0060 0122 movs r2, #1
- 15022 0062 1A85 strh r2, [r3, #40] @ movhi
- 15023 0064 08E0 b .L733
- 15024 .L732:
- 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15025 .loc 1 6889 24
- 15026 0066 FB68 ldr r3, [r7, #12]
- 15027 0068 FF22 movs r2, #255
- 15028 006a 1A85 strh r2, [r3, #40] @ movhi
- 15029 006c 04E0 b .L733
- 15030 .L731:
- 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15031 .loc 1 6894 28
- 15032 006e FB68 ldr r3, [r7, #12]
- 15033 0070 5B8D ldrh r3, [r3, #42] @ movhi
- 15034 0072 9AB2 uxth r2, r3
- 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15035 .loc 1 6894 22
- 15036 0074 FB68 ldr r3, [r7, #12]
- 15037 0076 1A85 strh r2, [r3, #40] @ movhi
- 15038 .L733:
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15039 .loc 1 6898 9
- 15040 0078 FB68 ldr r3, [r7, #12]
- 15041 007a D86B ldr r0, [r3, #60]
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15042 .loc 1 6898 55
- 15043 007c FB68 ldr r3, [r7, #12]
- 15044 007e 1B68 ldr r3, [r3]
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15045 .loc 1 6898 50
- 15046 0080 2433 adds r3, r3, #36
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15047 .loc 1 6898 9
- 15048 0082 1946 mov r1, r3
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15049 .loc 1 6898 87
- 15050 0084 FB68 ldr r3, [r7, #12]
- 15051 0086 5B6A ldr r3, [r3, #36]
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 389
- 15052 .loc 1 6898 9
- 15053 0088 1A46 mov r2, r3
- 6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15054 .loc 1 6899 30
- 15055 008a FB68 ldr r3, [r7, #12]
- 15056 008c 1B8D ldrh r3, [r3, #40]
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15057 .loc 1 6898 9
- 15058 008e FFF7FEFF bl HAL_DMA_Start_IT
- 15059 0092 0346 mov r3, r0
- 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
- 15060 .loc 1 6898 8
- 15061 0094 002B cmp r3, #0
- 15062 0096 04D0 beq .L734
- 6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15063 .loc 1 6902 7
- 15064 0098 1021 movs r1, #16
- 15065 009a F868 ldr r0, [r7, #12]
- 15066 009c FFF7FEFF bl I2C_ITError
- 15067 .loc 1 6910 1
- 15068 00a0 03E0 b .L735
- 15069 .L734:
- 6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15070 .loc 1 6907 7
- 15071 00a2 4021 movs r1, #64
- 15072 00a4 F868 ldr r0, [r7, #12]
- 15073 00a6 FFF7FEFF bl I2C_Enable_IRQ
- 15074 .L735:
- 15075 .loc 1 6910 1
- 15076 00aa 00BF nop
- 15077 00ac 1037 adds r7, r7, #16
- 15078 .LCFI359:
- 15079 .cfi_def_cfa_offset 8
- 15080 00ae BD46 mov sp, r7
- 15081 .LCFI360:
- 15082 .cfi_def_cfa_register 13
- 15083 @ sp needed
- 15084 00b0 80BD pop {r7, pc}
- 15085 .cfi_endproc
- 15086 .LFE198:
- 15088 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
- 15089 .align 1
- 15090 .syntax unified
- 15091 .thumb
- 15092 .thumb_func
- 15094 I2C_DMASlaveReceiveCplt:
- 15095 .LFB199:
- 6911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
- 6915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
- 6916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
- 6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15096 .loc 1 6919 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 390
- 15097 .cfi_startproc
- 15098 @ args = 0, pretend = 0, frame = 16
- 15099 @ frame_needed = 1, uses_anonymous_args = 0
- 15100 0000 80B5 push {r7, lr}
- 15101 .LCFI361:
- 15102 .cfi_def_cfa_offset 8
- 15103 .cfi_offset 7, -8
- 15104 .cfi_offset 14, -4
- 15105 0002 84B0 sub sp, sp, #16
- 15106 .LCFI362:
- 15107 .cfi_def_cfa_offset 24
- 15108 0004 00AF add r7, sp, #0
- 15109 .LCFI363:
- 15110 .cfi_def_cfa_register 7
- 15111 0006 7860 str r0, [r7, #4]
- 6920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
- 6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
- 15112 .loc 1 6921 22
- 15113 0008 7B68 ldr r3, [r7, #4]
- 15114 000a 5B6A ldr r3, [r3, #36]
- 15115 000c FB60 str r3, [r7, #12]
- 6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
- 15116 .loc 1 6922 12
- 15117 000e FB68 ldr r3, [r7, #12]
- 15118 0010 DB6A ldr r3, [r3, #44]
- 15119 0012 BB60 str r3, [r7, #8]
- 6923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \
- 15120 .loc 1 6924 8
- 15121 0014 FB68 ldr r3, [r7, #12]
- 15122 0016 DB6B ldr r3, [r3, #60]
- 15123 0018 1B68 ldr r3, [r3]
- 15124 001a 5B68 ldr r3, [r3, #4]
- 15125 .loc 1 6924 6
- 15126 001c 002B cmp r3, #0
- 15127 001e 0ED1 bne .L738
- 15128 .loc 1 6924 53 discriminator 1
- 15129 0020 BB68 ldr r3, [r7, #8]
- 15130 0022 13F5803F cmn r3, #65536
- 15131 0026 0AD0 beq .L738
- 6925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
- 6926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
- 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
- 15132 .loc 1 6928 9
- 15133 0028 FB68 ldr r3, [r7, #12]
- 15134 002a 1B68 ldr r3, [r3]
- 15135 .loc 1 6928 25
- 15136 002c 1A68 ldr r2, [r3]
- 15137 .loc 1 6928 9
- 15138 002e FB68 ldr r3, [r7, #12]
- 15139 0030 1B68 ldr r3, [r3]
- 15140 .loc 1 6928 25
- 15141 0032 22F40042 bic r2, r2, #32768
- 15142 0036 1A60 str r2, [r3]
- 6929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 391
- 6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
- 15143 .loc 1 6931 5
- 15144 0038 F868 ldr r0, [r7, #12]
- 15145 003a FFF7FEFF bl I2C_ITSlaveSeqCplt
- 15146 .L738:
- 6932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 6934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
- 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 */
- 6937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
- 6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15147 .loc 1 6939 1
- 15148 003e 00BF nop
- 15149 0040 1037 adds r7, r7, #16
- 15150 .LCFI364:
- 15151 .cfi_def_cfa_offset 8
- 15152 0042 BD46 mov sp, r7
- 15153 .LCFI365:
- 15154 .cfi_def_cfa_register 13
- 15155 @ sp needed
- 15156 0044 80BD pop {r7, pc}
- 15157 .cfi_endproc
- 15158 .LFE199:
- 15160 .section .text.I2C_DMAError,"ax",%progbits
- 15161 .align 1
- 15162 .syntax unified
- 15163 .thumb
- 15164 .thumb_func
- 15166 I2C_DMAError:
- 15167 .LFB200:
- 6940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
- 6944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
- 6945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
- 6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15168 .loc 1 6948 1
- 15169 .cfi_startproc
- 15170 @ args = 0, pretend = 0, frame = 16
- 15171 @ frame_needed = 1, uses_anonymous_args = 0
- 15172 0000 80B5 push {r7, lr}
- 15173 .LCFI366:
- 15174 .cfi_def_cfa_offset 8
- 15175 .cfi_offset 7, -8
- 15176 .cfi_offset 14, -4
- 15177 0002 84B0 sub sp, sp, #16
- 15178 .LCFI367:
- 15179 .cfi_def_cfa_offset 24
- 15180 0004 00AF add r7, sp, #0
- 15181 .LCFI368:
- 15182 .cfi_def_cfa_register 7
- 15183 0006 7860 str r0, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 392
- 6949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
- 6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
- 15184 .loc 1 6950 22
- 15185 0008 7B68 ldr r3, [r7, #4]
- 15186 000a 5B6A ldr r3, [r3, #36]
- 15187 000c FB60 str r3, [r7, #12]
- 6951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */
- 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
- 15188 .loc 1 6953 7
- 15189 000e FB68 ldr r3, [r7, #12]
- 15190 0010 1B68 ldr r3, [r3]
- 15191 .loc 1 6953 23
- 15192 0012 5A68 ldr r2, [r3, #4]
- 15193 .loc 1 6953 7
- 15194 0014 FB68 ldr r3, [r7, #12]
- 15195 0016 1B68 ldr r3, [r3]
- 15196 .loc 1 6953 23
- 15197 0018 42F40042 orr r2, r2, #32768
- 15198 001c 5A60 str r2, [r3, #4]
- 6954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
- 6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
- 15199 .loc 1 6956 3
- 15200 001e 1021 movs r1, #16
- 15201 0020 F868 ldr r0, [r7, #12]
- 15202 0022 FFF7FEFF bl I2C_ITError
- 6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15203 .loc 1 6957 1
- 15204 0026 00BF nop
- 15205 0028 1037 adds r7, r7, #16
- 15206 .LCFI369:
- 15207 .cfi_def_cfa_offset 8
- 15208 002a BD46 mov sp, r7
- 15209 .LCFI370:
- 15210 .cfi_def_cfa_register 13
- 15211 @ sp needed
- 15212 002c 80BD pop {r7, pc}
- 15213 .cfi_endproc
- 15214 .LFE200:
- 15216 .section .text.I2C_DMAAbort,"ax",%progbits
- 15217 .align 1
- 15218 .syntax unified
- 15219 .thumb
- 15220 .thumb_func
- 15222 I2C_DMAAbort:
- 15223 .LFB201:
- 6958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
- 6962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
- 6963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle.
- 6964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 6965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
- 6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 393
- 15224 .loc 1 6967 1
- 15225 .cfi_startproc
- 15226 @ args = 0, pretend = 0, frame = 16
- 15227 @ frame_needed = 1, uses_anonymous_args = 0
- 15228 0000 80B5 push {r7, lr}
- 15229 .LCFI371:
- 15230 .cfi_def_cfa_offset 8
- 15231 .cfi_offset 7, -8
- 15232 .cfi_offset 14, -4
- 15233 0002 84B0 sub sp, sp, #16
- 15234 .LCFI372:
- 15235 .cfi_def_cfa_offset 24
- 15236 0004 00AF add r7, sp, #0
- 15237 .LCFI373:
- 15238 .cfi_def_cfa_register 7
- 15239 0006 7860 str r0, [r7, #4]
- 6968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
- 6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
- 15240 .loc 1 6969 22
- 15241 0008 7B68 ldr r3, [r7, #4]
- 15242 000a 5B6A ldr r3, [r3, #36]
- 15243 000c FB60 str r3, [r7, #12]
- 6970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */
- 6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
- 15244 .loc 1 6972 11
- 15245 000e FB68 ldr r3, [r7, #12]
- 15246 0010 9B6B ldr r3, [r3, #56]
- 15247 .loc 1 6972 6
- 15248 0012 002B cmp r3, #0
- 15249 0014 03D0 beq .L741
- 6973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
- 15250 .loc 1 6974 9
- 15251 0016 FB68 ldr r3, [r7, #12]
- 15252 0018 9B6B ldr r3, [r3, #56]
- 15253 .loc 1 6974 37
- 15254 001a 0022 movs r2, #0
- 15255 001c 5A63 str r2, [r3, #52]
- 15256 .L741:
- 6975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
- 15257 .loc 1 6976 11
- 15258 001e FB68 ldr r3, [r7, #12]
- 15259 0020 DB6B ldr r3, [r3, #60]
- 15260 .loc 1 6976 6
- 15261 0022 002B cmp r3, #0
- 15262 0024 03D0 beq .L742
- 6977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
- 15263 .loc 1 6978 9
- 15264 0026 FB68 ldr r3, [r7, #12]
- 15265 0028 DB6B ldr r3, [r3, #60]
- 15266 .loc 1 6978 37
- 15267 002a 0022 movs r2, #0
- 15268 002c 5A63 str r2, [r3, #52]
- 15269 .L742:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 394
- 6979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 6980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
- 15270 .loc 1 6981 3
- 15271 002e F868 ldr r0, [r7, #12]
- 15272 0030 FFF7FEFF bl I2C_TreatErrorCallback
- 6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15273 .loc 1 6982 1
- 15274 0034 00BF nop
- 15275 0036 1037 adds r7, r7, #16
- 15276 .LCFI374:
- 15277 .cfi_def_cfa_offset 8
- 15278 0038 BD46 mov sp, r7
- 15279 .LCFI375:
- 15280 .cfi_def_cfa_register 13
- 15281 @ sp needed
- 15282 003a 80BD pop {r7, pc}
- 15283 .cfi_endproc
- 15284 .LFE201:
- 15286 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
- 15287 .align 1
- 15288 .syntax unified
- 15289 .thumb
- 15290 .thumb_func
- 15292 I2C_WaitOnFlagUntilTimeout:
- 15293 .LFB202:
- 6983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 6985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 6986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits
- 6987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * until a flag is no longer in the specified status.
- 6988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 6989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 6990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
- 6991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET).
- 6992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 6993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 6994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 6995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 6996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
- 6997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
- 6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15294 .loc 1 6998 1
- 15295 .cfi_startproc
- 15296 @ args = 4, pretend = 0, frame = 16
- 15297 @ frame_needed = 1, uses_anonymous_args = 0
- 15298 0000 80B5 push {r7, lr}
- 15299 .LCFI376:
- 15300 .cfi_def_cfa_offset 8
- 15301 .cfi_offset 7, -8
- 15302 .cfi_offset 14, -4
- 15303 0002 84B0 sub sp, sp, #16
- 15304 .LCFI377:
- 15305 .cfi_def_cfa_offset 24
- 15306 0004 00AF add r7, sp, #0
- 15307 .LCFI378:
- 15308 .cfi_def_cfa_register 7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 395
- 15309 0006 F860 str r0, [r7, #12]
- 15310 0008 B960 str r1, [r7, #8]
- 15311 000a 3B60 str r3, [r7]
- 15312 000c 1346 mov r3, r2
- 15313 000e FB71 strb r3, [r7, #7]
- 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
- 15314 .loc 1 6999 9
- 15315 0010 3BE0 b .L744
- 15316 .L748:
- 7000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
- 7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
- 15317 .loc 1 7002 9
- 15318 0012 BA69 ldr r2, [r7, #24]
- 15319 0014 3968 ldr r1, [r7]
- 15320 0016 F868 ldr r0, [r7, #12]
- 15321 0018 FFF7FEFF bl I2C_IsErrorOccurred
- 15322 001c 0346 mov r3, r0
- 15323 .loc 1 7002 8
- 15324 001e 002B cmp r3, #0
- 15325 0020 01D0 beq .L745
- 7003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 15326 .loc 1 7004 14
- 15327 0022 0123 movs r3, #1
- 15328 0024 41E0 b .L746
- 15329 .L745:
- 7005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
- 7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
- 15330 .loc 1 7008 8
- 15331 0026 3B68 ldr r3, [r7]
- 15332 0028 B3F1FF3F cmp r3, #-1
- 15333 002c 2DD0 beq .L744
- 7009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
- 15334 .loc 1 7010 13
- 15335 002e FFF7FEFF bl HAL_GetTick
- 15336 0032 0246 mov r2, r0
- 15337 .loc 1 7010 27
- 15338 0034 BB69 ldr r3, [r7, #24]
- 15339 0036 D31A subs r3, r2, r3
- 15340 .loc 1 7010 10
- 15341 0038 3A68 ldr r2, [r7]
- 15342 003a 9A42 cmp r2, r3
- 15343 003c 02D3 bcc .L747
- 15344 .loc 1 7010 51 discriminator 1
- 15345 003e 3B68 ldr r3, [r7]
- 15346 0040 002B cmp r3, #0
- 15347 0042 22D1 bne .L744
- 15348 .L747:
- 7011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status))
- 15349 .loc 1 7012 14
- 15350 0044 FB68 ldr r3, [r7, #12]
- 15351 0046 1B68 ldr r3, [r3]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 396
- 15352 0048 9A69 ldr r2, [r3, #24]
- 15353 004a BB68 ldr r3, [r7, #8]
- 15354 004c 1340 ands r3, r3, r2
- 15355 004e BA68 ldr r2, [r7, #8]
- 15356 0050 9A42 cmp r2, r3
- 15357 0052 0CBF ite eq
- 15358 0054 0123 moveq r3, #1
- 15359 0056 0023 movne r3, #0
- 15360 0058 DBB2 uxtb r3, r3
- 15361 005a 1A46 mov r2, r3
- 15362 .loc 1 7012 45
- 15363 005c FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
- 15364 .loc 1 7012 12
- 15365 005e 9A42 cmp r2, r3
- 15366 0060 13D1 bne .L744
- 7013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
- 15367 .loc 1 7014 27
- 15368 0062 FB68 ldr r3, [r7, #12]
- 15369 0064 5B6C ldr r3, [r3, #68]
- 15370 0066 43F02002 orr r2, r3, #32
- 15371 006a FB68 ldr r3, [r7, #12]
- 15372 006c 5A64 str r2, [r3, #68]
- 7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 15373 .loc 1 7015 23
- 15374 006e FB68 ldr r3, [r7, #12]
- 15375 0070 2022 movs r2, #32
- 15376 0072 83F84120 strb r2, [r3, #65]
- 7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 15377 .loc 1 7016 22
- 15378 0076 FB68 ldr r3, [r7, #12]
- 15379 0078 0022 movs r2, #0
- 15380 007a 83F84220 strb r2, [r3, #66]
- 7017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 15381 .loc 1 7019 11
- 15382 007e FB68 ldr r3, [r7, #12]
- 15383 0080 0022 movs r2, #0
- 15384 0082 83F84020 strb r2, [r3, #64]
- 7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 15385 .loc 1 7020 18
- 15386 0086 0123 movs r3, #1
- 15387 0088 0FE0 b .L746
- 15388 .L744:
- 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15389 .loc 1 6999 10
- 15390 008a FB68 ldr r3, [r7, #12]
- 15391 008c 1B68 ldr r3, [r3]
- 15392 008e 9A69 ldr r2, [r3, #24]
- 15393 0090 BB68 ldr r3, [r7, #8]
- 15394 0092 1340 ands r3, r3, r2
- 15395 0094 BA68 ldr r2, [r7, #8]
- 15396 0096 9A42 cmp r2, r3
- 15397 0098 0CBF ite eq
- 15398 009a 0123 moveq r3, #1
- 15399 009c 0023 movne r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 397
- 15400 009e DBB2 uxtb r3, r3
- 15401 00a0 1A46 mov r2, r3
- 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15402 .loc 1 6999 41
- 15403 00a2 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
- 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15404 .loc 1 6999 9
- 15405 00a4 9A42 cmp r2, r3
- 15406 00a6 B4D0 beq .L748
- 7021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 15407 .loc 1 7025 10
- 15408 00a8 0023 movs r3, #0
- 15409 .L746:
- 7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15410 .loc 1 7026 1
- 15411 00aa 1846 mov r0, r3
- 15412 00ac 1037 adds r7, r7, #16
- 15413 .LCFI379:
- 15414 .cfi_def_cfa_offset 8
- 15415 00ae BD46 mov sp, r7
- 15416 .LCFI380:
- 15417 .cfi_def_cfa_register 13
- 15418 @ sp needed
- 15419 00b0 80BD pop {r7, pc}
- 15420 .cfi_endproc
- 15421 .LFE202:
- 15423 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
- 15424 .align 1
- 15425 .syntax unified
- 15426 .thumb
- 15427 .thumb_func
- 15429 I2C_WaitOnTXISFlagUntilTimeout:
- 15430 .LFB203:
- 7027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 7029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
- 7030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 7031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 7032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 7033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 7034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 7035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 7037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
- 7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15431 .loc 1 7038 1
- 15432 .cfi_startproc
- 15433 @ args = 0, pretend = 0, frame = 16
- 15434 @ frame_needed = 1, uses_anonymous_args = 0
- 15435 0000 80B5 push {r7, lr}
- 15436 .LCFI381:
- 15437 .cfi_def_cfa_offset 8
- 15438 .cfi_offset 7, -8
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 398
- 15439 .cfi_offset 14, -4
- 15440 0002 84B0 sub sp, sp, #16
- 15441 .LCFI382:
- 15442 .cfi_def_cfa_offset 24
- 15443 0004 00AF add r7, sp, #0
- 15444 .LCFI383:
- 15445 .cfi_def_cfa_register 7
- 15446 0006 F860 str r0, [r7, #12]
- 15447 0008 B960 str r1, [r7, #8]
- 15448 000a 7A60 str r2, [r7, #4]
- 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
- 15449 .loc 1 7039 9
- 15450 000c 33E0 b .L750
- 15451 .L754:
- 7040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
- 7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
- 15452 .loc 1 7042 9
- 15453 000e 7A68 ldr r2, [r7, #4]
- 15454 0010 B968 ldr r1, [r7, #8]
- 15455 0012 F868 ldr r0, [r7, #12]
- 15456 0014 FFF7FEFF bl I2C_IsErrorOccurred
- 15457 0018 0346 mov r3, r0
- 15458 .loc 1 7042 8
- 15459 001a 002B cmp r3, #0
- 15460 001c 01D0 beq .L751
- 7043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 15461 .loc 1 7044 14
- 15462 001e 0123 movs r3, #1
- 15463 0020 31E0 b .L752
- 15464 .L751:
- 7045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
- 7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
- 15465 .loc 1 7048 8
- 15466 0022 BB68 ldr r3, [r7, #8]
- 15467 0024 B3F1FF3F cmp r3, #-1
- 15468 0028 25D0 beq .L750
- 7049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
- 15469 .loc 1 7050 13
- 15470 002a FFF7FEFF bl HAL_GetTick
- 15471 002e 0246 mov r2, r0
- 15472 .loc 1 7050 27
- 15473 0030 7B68 ldr r3, [r7, #4]
- 15474 0032 D31A subs r3, r2, r3
- 15475 .loc 1 7050 10
- 15476 0034 BA68 ldr r2, [r7, #8]
- 15477 0036 9A42 cmp r2, r3
- 15478 0038 02D3 bcc .L753
- 15479 .loc 1 7050 51 discriminator 1
- 15480 003a BB68 ldr r3, [r7, #8]
- 15481 003c 002B cmp r3, #0
- 15482 003e 1AD1 bne .L750
- 15483 .L753:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 399
- 7051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET))
- 15484 .loc 1 7052 14
- 15485 0040 FB68 ldr r3, [r7, #12]
- 15486 0042 1B68 ldr r3, [r3]
- 15487 0044 9B69 ldr r3, [r3, #24]
- 15488 0046 03F00203 and r3, r3, #2
- 15489 .loc 1 7052 12
- 15490 004a 022B cmp r3, #2
- 15491 004c 13D0 beq .L750
- 7053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
- 15492 .loc 1 7054 27
- 15493 004e FB68 ldr r3, [r7, #12]
- 15494 0050 5B6C ldr r3, [r3, #68]
- 15495 0052 43F02002 orr r2, r3, #32
- 15496 0056 FB68 ldr r3, [r7, #12]
- 15497 0058 5A64 str r2, [r3, #68]
- 7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 15498 .loc 1 7055 23
- 15499 005a FB68 ldr r3, [r7, #12]
- 15500 005c 2022 movs r2, #32
- 15501 005e 83F84120 strb r2, [r3, #65]
- 7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 15502 .loc 1 7056 22
- 15503 0062 FB68 ldr r3, [r7, #12]
- 15504 0064 0022 movs r2, #0
- 15505 0066 83F84220 strb r2, [r3, #66]
- 7057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 15506 .loc 1 7059 11
- 15507 006a FB68 ldr r3, [r7, #12]
- 15508 006c 0022 movs r2, #0
- 15509 006e 83F84020 strb r2, [r3, #64]
- 7060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 15510 .loc 1 7061 18
- 15511 0072 0123 movs r3, #1
- 15512 0074 07E0 b .L752
- 15513 .L750:
- 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15514 .loc 1 7039 10
- 15515 0076 FB68 ldr r3, [r7, #12]
- 15516 0078 1B68 ldr r3, [r3]
- 15517 007a 9B69 ldr r3, [r3, #24]
- 15518 007c 03F00203 and r3, r3, #2
- 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15519 .loc 1 7039 9
- 15520 0080 022B cmp r3, #2
- 15521 0082 C4D1 bne .L754
- 7062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 15522 .loc 1 7066 10
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 400
- 15523 0084 0023 movs r3, #0
- 15524 .L752:
- 7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15525 .loc 1 7067 1
- 15526 0086 1846 mov r0, r3
- 15527 0088 1037 adds r7, r7, #16
- 15528 .LCFI384:
- 15529 .cfi_def_cfa_offset 8
- 15530 008a BD46 mov sp, r7
- 15531 .LCFI385:
- 15532 .cfi_def_cfa_register 13
- 15533 @ sp needed
- 15534 008c 80BD pop {r7, pc}
- 15535 .cfi_endproc
- 15536 .LFE203:
- 15538 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
- 15539 .align 1
- 15540 .syntax unified
- 15541 .thumb
- 15542 .thumb_func
- 15544 I2C_WaitOnSTOPFlagUntilTimeout:
- 15545 .LFB204:
- 7068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 7070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
- 7071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 7073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 7074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 7075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 7076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 7078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
- 7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15546 .loc 1 7079 1
- 15547 .cfi_startproc
- 15548 @ args = 0, pretend = 0, frame = 16
- 15549 @ frame_needed = 1, uses_anonymous_args = 0
- 15550 0000 80B5 push {r7, lr}
- 15551 .LCFI386:
- 15552 .cfi_def_cfa_offset 8
- 15553 .cfi_offset 7, -8
- 15554 .cfi_offset 14, -4
- 15555 0002 84B0 sub sp, sp, #16
- 15556 .LCFI387:
- 15557 .cfi_def_cfa_offset 24
- 15558 0004 00AF add r7, sp, #0
- 15559 .LCFI388:
- 15560 .cfi_def_cfa_register 7
- 15561 0006 F860 str r0, [r7, #12]
- 15562 0008 B960 str r1, [r7, #8]
- 15563 000a 7A60 str r2, [r7, #4]
- 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
- 15564 .loc 1 7080 9
- 15565 000c 2FE0 b .L756
- 15566 .L760:
- 7081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 401
- 7082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
- 7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
- 15567 .loc 1 7083 9
- 15568 000e 7A68 ldr r2, [r7, #4]
- 15569 0010 B968 ldr r1, [r7, #8]
- 15570 0012 F868 ldr r0, [r7, #12]
- 15571 0014 FFF7FEFF bl I2C_IsErrorOccurred
- 15572 0018 0346 mov r3, r0
- 15573 .loc 1 7083 8
- 15574 001a 002B cmp r3, #0
- 15575 001c 01D0 beq .L757
- 7084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 15576 .loc 1 7085 14
- 15577 001e 0123 movs r3, #1
- 15578 0020 2DE0 b .L758
- 15579 .L757:
- 7086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
- 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
- 15580 .loc 1 7089 11
- 15581 0022 FFF7FEFF bl HAL_GetTick
- 15582 0026 0246 mov r2, r0
- 15583 .loc 1 7089 25
- 15584 0028 7B68 ldr r3, [r7, #4]
- 15585 002a D31A subs r3, r2, r3
- 15586 .loc 1 7089 8
- 15587 002c BA68 ldr r2, [r7, #8]
- 15588 002e 9A42 cmp r2, r3
- 15589 0030 02D3 bcc .L759
- 15590 .loc 1 7089 49 discriminator 1
- 15591 0032 BB68 ldr r3, [r7, #8]
- 15592 0034 002B cmp r3, #0
- 15593 0036 1AD1 bne .L756
- 15594 .L759:
- 7090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET))
- 15595 .loc 1 7091 12
- 15596 0038 FB68 ldr r3, [r7, #12]
- 15597 003a 1B68 ldr r3, [r3]
- 15598 003c 9B69 ldr r3, [r3, #24]
- 15599 003e 03F02003 and r3, r3, #32
- 15600 .loc 1 7091 10
- 15601 0042 202B cmp r3, #32
- 15602 0044 13D0 beq .L756
- 7092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
- 15603 .loc 1 7093 25
- 15604 0046 FB68 ldr r3, [r7, #12]
- 15605 0048 5B6C ldr r3, [r3, #68]
- 15606 004a 43F02002 orr r2, r3, #32
- 15607 004e FB68 ldr r3, [r7, #12]
- 15608 0050 5A64 str r2, [r3, #68]
- 7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 15609 .loc 1 7094 21
- 15610 0052 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 402
- 15611 0054 2022 movs r2, #32
- 15612 0056 83F84120 strb r2, [r3, #65]
- 7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 15613 .loc 1 7095 20
- 15614 005a FB68 ldr r3, [r7, #12]
- 15615 005c 0022 movs r2, #0
- 15616 005e 83F84220 strb r2, [r3, #66]
- 7096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 15617 .loc 1 7098 9
- 15618 0062 FB68 ldr r3, [r7, #12]
- 15619 0064 0022 movs r2, #0
- 15620 0066 83F84020 strb r2, [r3, #64]
- 7099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
- 15621 .loc 1 7100 16
- 15622 006a 0123 movs r3, #1
- 15623 006c 07E0 b .L758
- 15624 .L756:
- 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15625 .loc 1 7080 10
- 15626 006e FB68 ldr r3, [r7, #12]
- 15627 0070 1B68 ldr r3, [r3]
- 15628 0072 9B69 ldr r3, [r3, #24]
- 15629 0074 03F02003 and r3, r3, #32
- 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15630 .loc 1 7080 9
- 15631 0078 202B cmp r3, #32
- 15632 007a C8D1 bne .L760
- 7101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
- 15633 .loc 1 7104 10
- 15634 007c 0023 movs r3, #0
- 15635 .L758:
- 7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15636 .loc 1 7105 1
- 15637 007e 1846 mov r0, r3
- 15638 0080 1037 adds r7, r7, #16
- 15639 .LCFI389:
- 15640 .cfi_def_cfa_offset 8
- 15641 0082 BD46 mov sp, r7
- 15642 .LCFI390:
- 15643 .cfi_def_cfa_register 13
- 15644 @ sp needed
- 15645 0084 80BD pop {r7, pc}
- 15646 .cfi_endproc
- 15647 .LFE204:
- 15649 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
- 15650 .align 1
- 15651 .syntax unified
- 15652 .thumb
- 15653 .thumb_func
- 15655 I2C_WaitOnRXNEFlagUntilTimeout:
- 15656 .LFB205:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 403
- 7106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 7108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
- 7109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 7110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 7111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 7112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 7113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 7114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
- 7116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
- 7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15657 .loc 1 7117 1
- 15658 .cfi_startproc
- 15659 @ args = 0, pretend = 0, frame = 24
- 15660 @ frame_needed = 1, uses_anonymous_args = 0
- 15661 0000 80B5 push {r7, lr}
- 15662 .LCFI391:
- 15663 .cfi_def_cfa_offset 8
- 15664 .cfi_offset 7, -8
- 15665 .cfi_offset 14, -4
- 15666 0002 86B0 sub sp, sp, #24
- 15667 .LCFI392:
- 15668 .cfi_def_cfa_offset 32
- 15669 0004 00AF add r7, sp, #0
- 15670 .LCFI393:
- 15671 .cfi_def_cfa_register 7
- 15672 0006 F860 str r0, [r7, #12]
- 15673 0008 B960 str r1, [r7, #8]
- 15674 000a 7A60 str r2, [r7, #4]
- 7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
- 15675 .loc 1 7118 21
- 15676 000c 0023 movs r3, #0
- 15677 000e FB75 strb r3, [r7, #23]
- 7119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK))
- 15678 .loc 1 7120 9
- 15679 0010 71E0 b .L762
- 15680 .L769:
- 7121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
- 7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
- 15681 .loc 1 7123 9
- 15682 0012 7A68 ldr r2, [r7, #4]
- 15683 0014 B968 ldr r1, [r7, #8]
- 15684 0016 F868 ldr r0, [r7, #12]
- 15685 0018 FFF7FEFF bl I2C_IsErrorOccurred
- 15686 001c 0346 mov r3, r0
- 15687 .loc 1 7123 8
- 15688 001e 002B cmp r3, #0
- 15689 0020 01D0 beq .L763
- 7124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 15690 .loc 1 7125 14
- 15691 0022 0123 movs r3, #1
- 15692 0024 FB75 strb r3, [r7, #23]
- 15693 .L763:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 404
- 7126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
- 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK))
- 15694 .loc 1 7129 10
- 15695 0026 FB68 ldr r3, [r7, #12]
- 15696 0028 1B68 ldr r3, [r3]
- 15697 002a 9B69 ldr r3, [r3, #24]
- 15698 002c 03F02003 and r3, r3, #32
- 15699 .loc 1 7129 8
- 15700 0030 202B cmp r3, #32
- 15701 0032 3BD1 bne .L764
- 15702 .loc 1 7129 59 discriminator 1
- 15703 0034 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 15704 0036 002B cmp r3, #0
- 15705 0038 38D1 bne .L764
- 7130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */
- 7132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
- 7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
- 15706 .loc 1 7133 12
- 15707 003a FB68 ldr r3, [r7, #12]
- 15708 003c 1B68 ldr r3, [r3]
- 15709 003e 9B69 ldr r3, [r3, #24]
- 15710 0040 03F00403 and r3, r3, #4
- 15711 .loc 1 7133 10
- 15712 0044 042B cmp r3, #4
- 15713 0046 05D1 bne .L765
- 15714 .loc 1 7133 68 discriminator 1
- 15715 0048 FB68 ldr r3, [r7, #12]
- 15716 004a 1B8D ldrh r3, [r3, #40]
- 15717 .loc 1 7133 60 discriminator 1
- 15718 004c 002B cmp r3, #0
- 15719 004e 01D0 beq .L765
- 7134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */
- 7136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
- 7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_OK;
- 15720 .loc 1 7137 16
- 15721 0050 0023 movs r3, #0
- 15722 0052 FB75 strb r3, [r7, #23]
- 15723 .L765:
- 7138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */
- 7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
- 15724 .loc 1 7141 11
- 15725 0054 FB68 ldr r3, [r7, #12]
- 15726 0056 1B68 ldr r3, [r3]
- 15727 0058 9B69 ldr r3, [r3, #24]
- 15728 005a 03F01003 and r3, r3, #16
- 15729 .loc 1 7141 10
- 15730 005e 102B cmp r3, #16
- 15731 0060 21D1 bne .L766
- 7142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 15732 .loc 1 7143 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 405
- 15733 0062 FB68 ldr r3, [r7, #12]
- 15734 0064 1B68 ldr r3, [r3]
- 15735 0066 1022 movs r2, #16
- 15736 0068 DA61 str r2, [r3, #28]
- 7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
- 15737 .loc 1 7144 25
- 15738 006a FB68 ldr r3, [r7, #12]
- 15739 006c 0422 movs r2, #4
- 15740 006e 5A64 str r2, [r3, #68]
- 7145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 15741 .loc 1 7147 9
- 15742 0070 FB68 ldr r3, [r7, #12]
- 15743 0072 1B68 ldr r3, [r3]
- 15744 0074 2022 movs r2, #32
- 15745 0076 DA61 str r2, [r3, #28]
- 7148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 15746 .loc 1 7150 9
- 15747 0078 FB68 ldr r3, [r7, #12]
- 15748 007a 1B68 ldr r3, [r3]
- 15749 007c 5968 ldr r1, [r3, #4]
- 15750 007e FB68 ldr r3, [r7, #12]
- 15751 0080 1A68 ldr r2, [r3]
- 15752 0082 244B ldr r3, .L771
- 15753 0084 0B40 ands r3, r3, r1
- 15754 0086 5360 str r3, [r2, #4]
- 7151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 15755 .loc 1 7152 21
- 15756 0088 FB68 ldr r3, [r7, #12]
- 15757 008a 2022 movs r2, #32
- 15758 008c 83F84120 strb r2, [r3, #65]
- 7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 15759 .loc 1 7153 20
- 15760 0090 FB68 ldr r3, [r7, #12]
- 15761 0092 0022 movs r2, #0
- 15762 0094 83F84220 strb r2, [r3, #66]
- 7154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 15763 .loc 1 7156 9
- 15764 0098 FB68 ldr r3, [r7, #12]
- 15765 009a 0022 movs r2, #0
- 15766 009c 83F84020 strb r2, [r3, #64]
- 7157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 15767 .loc 1 7158 16
- 15768 00a0 0123 movs r3, #1
- 15769 00a2 FB75 strb r3, [r7, #23]
- 15770 00a4 02E0 b .L764
- 15771 .L766:
- 7159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 7161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 406
- 7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
- 15772 .loc 1 7162 25
- 15773 00a6 FB68 ldr r3, [r7, #12]
- 15774 00a8 0022 movs r2, #0
- 15775 00aa 5A64 str r2, [r3, #68]
- 15776 .L764:
- 7163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
- 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK))
- 15777 .loc 1 7167 12
- 15778 00ac FFF7FEFF bl HAL_GetTick
- 15779 00b0 0246 mov r2, r0
- 15780 .loc 1 7167 26
- 15781 00b2 7B68 ldr r3, [r7, #4]
- 15782 00b4 D31A subs r3, r2, r3
- 15783 .loc 1 7167 8
- 15784 00b6 BA68 ldr r2, [r7, #8]
- 15785 00b8 9A42 cmp r2, r3
- 15786 00ba 02D3 bcc .L767
- 15787 .loc 1 7167 50 discriminator 2
- 15788 00bc BB68 ldr r3, [r7, #8]
- 15789 00be 002B cmp r3, #0
- 15790 00c0 19D1 bne .L762
- 15791 .L767:
- 15792 .loc 1 7167 70 discriminator 3
- 15793 00c2 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 15794 00c4 002B cmp r3, #0
- 15795 00c6 16D1 bne .L762
- 7168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET))
- 15796 .loc 1 7169 12
- 15797 00c8 FB68 ldr r3, [r7, #12]
- 15798 00ca 1B68 ldr r3, [r3]
- 15799 00cc 9B69 ldr r3, [r3, #24]
- 15800 00ce 03F00403 and r3, r3, #4
- 15801 .loc 1 7169 10
- 15802 00d2 042B cmp r3, #4
- 15803 00d4 0FD0 beq .L762
- 7170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
- 15804 .loc 1 7171 25
- 15805 00d6 FB68 ldr r3, [r7, #12]
- 15806 00d8 5B6C ldr r3, [r3, #68]
- 15807 00da 43F02002 orr r2, r3, #32
- 15808 00de FB68 ldr r3, [r7, #12]
- 15809 00e0 5A64 str r2, [r3, #68]
- 7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 15810 .loc 1 7172 21
- 15811 00e2 FB68 ldr r3, [r7, #12]
- 15812 00e4 2022 movs r2, #32
- 15813 00e6 83F84120 strb r2, [r3, #65]
- 7173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 15814 .loc 1 7175 9
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 407
- 15815 00ea FB68 ldr r3, [r7, #12]
- 15816 00ec 0022 movs r2, #0
- 15817 00ee 83F84020 strb r2, [r3, #64]
- 7176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 15818 .loc 1 7177 16
- 15819 00f2 0123 movs r3, #1
- 15820 00f4 FB75 strb r3, [r7, #23]
- 15821 .L762:
- 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15822 .loc 1 7120 11
- 15823 00f6 FB68 ldr r3, [r7, #12]
- 15824 00f8 1B68 ldr r3, [r3]
- 15825 00fa 9B69 ldr r3, [r3, #24]
- 15826 00fc 03F00403 and r3, r3, #4
- 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15827 .loc 1 7120 9
- 15828 0100 042B cmp r3, #4
- 15829 0102 02D0 beq .L768
- 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15830 .loc 1 7120 61 discriminator 1
- 15831 0104 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 15832 0106 002B cmp r3, #0
- 15833 0108 83D0 beq .L769
- 15834 .L768:
- 7178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
- 15835 .loc 1 7181 10
- 15836 010a FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
- 7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 15837 .loc 1 7182 1
- 15838 010c 1846 mov r0, r3
- 15839 010e 1837 adds r7, r7, #24
- 15840 .LCFI394:
- 15841 .cfi_def_cfa_offset 8
- 15842 0110 BD46 mov sp, r7
- 15843 .LCFI395:
- 15844 .cfi_def_cfa_register 13
- 15845 @ sp needed
- 15846 0112 80BD pop {r7, pc}
- 15847 .L772:
- 15848 .align 2
- 15849 .L771:
- 15850 0114 00E800FE .word -33495040
- 15851 .cfi_endproc
- 15852 .LFE205:
- 15854 .section .text.I2C_IsErrorOccurred,"ax",%progbits
- 15855 .align 1
- 15856 .syntax unified
- 15857 .thumb
- 15858 .thumb_func
- 15860 I2C_IsErrorOccurred:
- 15861 .LFB206:
- 7183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 408
- 7185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication.
- 7186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 7187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 7188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
- 7189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
- 7190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
- 7191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti
- 7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15862 .loc 1 7193 1
- 15863 .cfi_startproc
- 15864 @ args = 0, pretend = 0, frame = 40
- 15865 @ frame_needed = 1, uses_anonymous_args = 0
- 15866 0000 80B5 push {r7, lr}
- 15867 .LCFI396:
- 15868 .cfi_def_cfa_offset 8
- 15869 .cfi_offset 7, -8
- 15870 .cfi_offset 14, -4
- 15871 0002 8AB0 sub sp, sp, #40
- 15872 .LCFI397:
- 15873 .cfi_def_cfa_offset 48
- 15874 0004 00AF add r7, sp, #0
- 15875 .LCFI398:
- 15876 .cfi_def_cfa_register 7
- 15877 0006 F860 str r0, [r7, #12]
- 15878 0008 B960 str r1, [r7, #8]
- 15879 000a 7A60 str r2, [r7, #4]
- 7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
- 15880 .loc 1 7194 21
- 15881 000c 0023 movs r3, #0
- 15882 000e 87F82730 strb r3, [r7, #39]
- 7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
- 15883 .loc 1 7195 27
- 15884 0012 FB68 ldr r3, [r7, #12]
- 15885 0014 1B68 ldr r3, [r3]
- 15886 .loc 1 7195 12
- 15887 0016 9B69 ldr r3, [r3, #24]
- 15888 0018 BB61 str r3, [r7, #24]
- 7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
- 15889 .loc 1 7196 12
- 15890 001a 0023 movs r3, #0
- 15891 001c 3B62 str r3, [r7, #32]
- 7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
- 15892 .loc 1 7197 12
- 15893 001e 7B68 ldr r3, [r7, #4]
- 15894 0020 FB61 str r3, [r7, #28]
- 7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1;
- 7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
- 7200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
- 15895 .loc 1 7201 7
- 15896 0022 BB69 ldr r3, [r7, #24]
- 15897 0024 03F01003 and r3, r3, #16
- 15898 .loc 1 7201 6
- 15899 0028 002B cmp r3, #0
- 15900 002a 68D0 beq .L774
- 7202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 409
- 7203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */
- 7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
- 15901 .loc 1 7204 5
- 15902 002c FB68 ldr r3, [r7, #12]
- 15903 002e 1B68 ldr r3, [r3]
- 15904 0030 1022 movs r2, #16
- 15905 0032 DA61 str r2, [r3, #28]
- 7205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */
- 7207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
- 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
- 15906 .loc 1 7208 11
- 15907 0034 49E0 b .L775
- 15908 .L781:
- 7209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
- 7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
- 15909 .loc 1 7211 10
- 15910 0036 BB68 ldr r3, [r7, #8]
- 15911 0038 B3F1FF3F cmp r3, #-1
- 15912 003c 45D0 beq .L775
- 7212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
- 15913 .loc 1 7213 15
- 15914 003e FFF7FEFF bl HAL_GetTick
- 15915 0042 0246 mov r2, r0
- 15916 .loc 1 7213 29
- 15917 0044 FB69 ldr r3, [r7, #28]
- 15918 0046 D31A subs r3, r2, r3
- 15919 .loc 1 7213 12
- 15920 0048 BA68 ldr r2, [r7, #8]
- 15921 004a 9A42 cmp r2, r3
- 15922 004c 02D3 bcc .L776
- 15923 .loc 1 7213 53 discriminator 1
- 15924 004e BB68 ldr r3, [r7, #8]
- 15925 0050 002B cmp r3, #0
- 15926 0052 3AD1 bne .L775
- 15927 .L776:
- 7214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
- 15928 .loc 1 7215 33
- 15929 0054 FB68 ldr r3, [r7, #12]
- 15930 0056 1B68 ldr r3, [r3]
- 15931 .loc 1 7215 43
- 15932 0058 5B68 ldr r3, [r3, #4]
- 15933 .loc 1 7215 16
- 15934 005a 03F48043 and r3, r3, #16384
- 15935 005e 7B61 str r3, [r7, #20]
- 7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
- 15936 .loc 1 7216 16
- 15937 0060 FB68 ldr r3, [r7, #12]
- 15938 0062 93F84230 ldrb r3, [r3, #66]
- 15939 0066 FB74 strb r3, [r7, #19]
- 7217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */
- 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
- 15940 .loc 1 7219 16
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 410
- 15941 0068 FB68 ldr r3, [r7, #12]
- 15942 006a 1B68 ldr r3, [r3]
- 15943 006c 9B69 ldr r3, [r3, #24]
- 15944 006e 03F40043 and r3, r3, #32768
- 15945 .loc 1 7219 14
- 15946 0072 B3F5004F cmp r3, #32768
- 15947 0076 21D1 bne .L778
- 15948 .loc 1 7219 66 discriminator 1
- 15949 0078 7B69 ldr r3, [r7, #20]
- 15950 007a B3F5804F cmp r3, #16384
- 15951 007e 1DD0 beq .L778
- 7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
- 15952 .loc 1 7220 38
- 15953 0080 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2
- 15954 0082 202B cmp r3, #32
- 15955 0084 1AD0 beq .L778
- 7221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
- 7222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
- 7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
- 15956 .loc 1 7224 17
- 15957 0086 FB68 ldr r3, [r7, #12]
- 15958 0088 1B68 ldr r3, [r3]
- 15959 .loc 1 7224 33
- 15960 008a 5A68 ldr r2, [r3, #4]
- 15961 .loc 1 7224 17
- 15962 008c FB68 ldr r3, [r7, #12]
- 15963 008e 1B68 ldr r3, [r3]
- 15964 .loc 1 7224 33
- 15965 0090 42F48042 orr r2, r2, #16384
- 15966 0094 5A60 str r2, [r3, #4]
- 7225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Tick with new reference */
- 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
- 15967 .loc 1 7227 25
- 15968 0096 FFF7FEFF bl HAL_GetTick
- 15969 009a F861 str r0, [r7, #28]
- 7228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
- 15970 .loc 1 7230 17
- 15971 009c 0EE0 b .L778
- 15972 .L779:
- 7231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
- 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
- 15973 .loc 1 7233 18
- 15974 009e FFF7FEFF bl HAL_GetTick
- 15975 00a2 0246 mov r2, r0
- 15976 .loc 1 7233 32
- 15977 00a4 FB69 ldr r3, [r7, #28]
- 15978 00a6 D31A subs r3, r2, r3
- 15979 .loc 1 7233 16
- 15980 00a8 192B cmp r3, #25
- 15981 00aa 07D9 bls .L778
- 7234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 411
- 15982 .loc 1 7235 26
- 15983 00ac 3B6A ldr r3, [r7, #32]
- 15984 00ae 43F02003 orr r3, r3, #32
- 15985 00b2 3B62 str r3, [r7, #32]
- 7236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 15986 .loc 1 7237 22
- 15987 00b4 0123 movs r3, #1
- 15988 00b6 87F82730 strb r3, [r7, #39]
- 7238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
- 15989 .loc 1 7239 15
- 15990 00ba 06E0 b .L775
- 15991 .L778:
- 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15992 .loc 1 7230 18
- 15993 00bc FB68 ldr r3, [r7, #12]
- 15994 00be 1B68 ldr r3, [r3]
- 15995 00c0 9B69 ldr r3, [r3, #24]
- 15996 00c2 03F02003 and r3, r3, #32
- 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 15997 .loc 1 7230 17
- 15998 00c6 202B cmp r3, #32
- 15999 00c8 E9D1 bne .L779
- 16000 .L775:
- 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16001 .loc 1 7208 13
- 16002 00ca FB68 ldr r3, [r7, #12]
- 16003 00cc 1B68 ldr r3, [r3]
- 16004 00ce 9B69 ldr r3, [r3, #24]
- 16005 00d0 03F02003 and r3, r3, #32
- 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16006 .loc 1 7208 11
- 16007 00d4 202B cmp r3, #32
- 16008 00d6 03D0 beq .L780
- 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16009 .loc 1 7208 64 discriminator 1
- 16010 00d8 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
- 16011 00dc 002B cmp r3, #0
- 16012 00de AAD0 beq .L781
- 16013 .L780:
- 7240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */
- 7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status == HAL_OK)
- 16014 .loc 1 7247 8
- 16015 00e0 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
- 16016 00e4 002B cmp r3, #0
- 16017 00e6 03D1 bne .L782
- 7248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
- 7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
- 16018 .loc 1 7250 7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 412
- 16019 00e8 FB68 ldr r3, [r7, #12]
- 16020 00ea 1B68 ldr r3, [r3]
- 16021 00ec 2022 movs r2, #32
- 16022 00ee DA61 str r2, [r3, #28]
- 16023 .L782:
- 7251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF;
- 16024 .loc 1 7253 16
- 16025 00f0 3B6A ldr r3, [r7, #32]
- 16026 00f2 43F00403 orr r3, r3, #4
- 16027 00f6 3B62 str r3, [r7, #32]
- 7254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 16028 .loc 1 7255 12
- 16029 00f8 0123 movs r3, #1
- 16030 00fa 87F82730 strb r3, [r7, #39]
- 16031 .L774:
- 7256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Refresh Content of Status register */
- 7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** itflag = hi2c->Instance->ISR;
- 16032 .loc 1 7259 16
- 16033 00fe FB68 ldr r3, [r7, #12]
- 16034 0100 1B68 ldr r3, [r3]
- 16035 .loc 1 7259 10
- 16036 0102 9B69 ldr r3, [r3, #24]
- 16037 0104 BB61 str r3, [r7, #24]
- 7260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Then verify if an additional errors occurs */
- 7262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a Bus error occurred */
- 7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
- 16038 .loc 1 7263 7
- 16039 0106 BB69 ldr r3, [r7, #24]
- 16040 0108 03F48073 and r3, r3, #256
- 16041 .loc 1 7263 6
- 16042 010c 002B cmp r3, #0
- 16043 010e 0BD0 beq .L783
- 7264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR;
- 16044 .loc 1 7265 16
- 16045 0110 3B6A ldr r3, [r7, #32]
- 16046 0112 43F00103 orr r3, r3, #1
- 16047 0116 3B62 str r3, [r7, #32]
- 7266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
- 7268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
- 16048 .loc 1 7268 5
- 16049 0118 FB68 ldr r3, [r7, #12]
- 16050 011a 1B68 ldr r3, [r3]
- 16051 011c 4FF48072 mov r2, #256
- 16052 0120 DA61 str r2, [r3, #28]
- 7269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 16053 .loc 1 7270 12
- 16054 0122 0123 movs r3, #1
- 16055 0124 87F82730 strb r3, [r7, #39]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 413
- 16056 .L783:
- 7271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */
- 7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
- 16057 .loc 1 7274 7
- 16058 0128 BB69 ldr r3, [r7, #24]
- 16059 012a 03F48063 and r3, r3, #1024
- 16060 .loc 1 7274 6
- 16061 012e 002B cmp r3, #0
- 16062 0130 0BD0 beq .L784
- 7275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR;
- 16063 .loc 1 7276 16
- 16064 0132 3B6A ldr r3, [r7, #32]
- 16065 0134 43F00803 orr r3, r3, #8
- 16066 0138 3B62 str r3, [r7, #32]
- 7277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
- 7279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
- 16067 .loc 1 7279 5
- 16068 013a FB68 ldr r3, [r7, #12]
- 16069 013c 1B68 ldr r3, [r3]
- 16070 013e 4FF48062 mov r2, #1024
- 16071 0142 DA61 str r2, [r3, #28]
- 7280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- 16072 .loc 1 7281 12
- 16073 0144 0123 movs r3, #1
- 16074 0146 87F82730 strb r3, [r7, #39]
- 16075 .L784:
- 7282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */
- 7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
- 16076 .loc 1 7285 7
- 16077 014a BB69 ldr r3, [r7, #24]
- 16078 014c 03F40073 and r3, r3, #512
- 16079 .loc 1 7285 6
- 16080 0150 002B cmp r3, #0
- 16081 0152 0BD0 beq .L785
- 7286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO;
- 16082 .loc 1 7287 16
- 16083 0154 3B6A ldr r3, [r7, #32]
- 16084 0156 43F00203 orr r3, r3, #2
- 16085 015a 3B62 str r3, [r7, #32]
- 7288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
- 7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
- 16086 .loc 1 7290 5
- 16087 015c FB68 ldr r3, [r7, #12]
- 16088 015e 1B68 ldr r3, [r3]
- 16089 0160 4FF40072 mov r2, #512
- 16090 0164 DA61 str r2, [r3, #28]
- 7291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 414
- 16091 .loc 1 7292 12
- 16092 0166 0123 movs r3, #1
- 16093 0168 87F82730 strb r3, [r7, #39]
- 16094 .L785:
- 7293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status != HAL_OK)
- 16095 .loc 1 7295 6
- 16096 016c 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
- 16097 0170 002B cmp r3, #0
- 16098 0172 1CD0 beq .L786
- 7296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
- 7298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
- 16099 .loc 1 7298 5
- 16100 0174 F868 ldr r0, [r7, #12]
- 16101 0176 FFF7FEFF bl I2C_Flush_TXDR
- 7299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
- 7301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
- 16102 .loc 1 7301 5
- 16103 017a FB68 ldr r3, [r7, #12]
- 16104 017c 1B68 ldr r3, [r3]
- 16105 017e 5968 ldr r1, [r3, #4]
- 16106 0180 FB68 ldr r3, [r7, #12]
- 16107 0182 1A68 ldr r2, [r3]
- 16108 0184 0D4B ldr r3, .L788
- 16109 0186 0B40 ands r3, r3, r1
- 16110 0188 5360 str r3, [r2, #4]
- 7302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= error_code;
- 16111 .loc 1 7303 21
- 16112 018a FB68 ldr r3, [r7, #12]
- 16113 018c 5A6C ldr r2, [r3, #68]
- 16114 018e 3B6A ldr r3, [r7, #32]
- 16115 0190 1A43 orrs r2, r2, r3
- 16116 0192 FB68 ldr r3, [r7, #12]
- 16117 0194 5A64 str r2, [r3, #68]
- 7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
- 16118 .loc 1 7304 17
- 16119 0196 FB68 ldr r3, [r7, #12]
- 16120 0198 2022 movs r2, #32
- 16121 019a 83F84120 strb r2, [r3, #65]
- 7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
- 16122 .loc 1 7305 16
- 16123 019e FB68 ldr r3, [r7, #12]
- 16124 01a0 0022 movs r2, #0
- 16125 01a2 83F84220 strb r2, [r3, #66]
- 7306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
- 7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
- 16126 .loc 1 7308 5
- 16127 01a6 FB68 ldr r3, [r7, #12]
- 16128 01a8 0022 movs r2, #0
- 16129 01aa 83F84020 strb r2, [r3, #64]
- 16130 .L786:
- 7309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 415
- 7310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
- 16131 .loc 1 7311 10
- 16132 01ae 97F82730 ldrb r3, [r7, #39] @ zero_extendqisi2
- 7312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 16133 .loc 1 7312 1
- 16134 01b2 1846 mov r0, r3
- 16135 01b4 2837 adds r7, r7, #40
- 16136 .LCFI399:
- 16137 .cfi_def_cfa_offset 8
- 16138 01b6 BD46 mov sp, r7
- 16139 .LCFI400:
- 16140 .cfi_def_cfa_register 13
- 16141 @ sp needed
- 16142 01b8 80BD pop {r7, pc}
- 16143 .L789:
- 16144 01ba 00BF .align 2
- 16145 .L788:
- 16146 01bc 00E800FE .word -33495040
- 16147 .cfi_endproc
- 16148 .LFE206:
- 16150 .section .text.I2C_TransferConfig,"ax",%progbits
- 16151 .align 1
- 16152 .syntax unified
- 16153 .thumb
- 16154 .thumb_func
- 16156 I2C_TransferConfig:
- 16157 .LFB207:
- 7313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 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
- 7316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 7317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
- 7318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
- 7319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
- 7320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
- 7321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
- 7322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
- 7323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
- 7324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
- 7325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
- 7326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
- 7327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
- 7328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
- 7329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
- 7330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
- 7331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 7332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 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
- 7334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request)
- 7335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16158 .loc 1 7335 1
- 16159 .cfi_startproc
- 16160 @ args = 4, pretend = 0, frame = 24
- 16161 @ frame_needed = 1, uses_anonymous_args = 0
- 16162 0000 80B5 push {r7, lr}
- 16163 .LCFI401:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 416
- 16164 .cfi_def_cfa_offset 8
- 16165 .cfi_offset 7, -8
- 16166 .cfi_offset 14, -4
- 16167 0002 86B0 sub sp, sp, #24
- 16168 .LCFI402:
- 16169 .cfi_def_cfa_offset 32
- 16170 0004 00AF add r7, sp, #0
- 16171 .LCFI403:
- 16172 .cfi_def_cfa_register 7
- 16173 0006 F860 str r0, [r7, #12]
- 16174 0008 7B60 str r3, [r7, #4]
- 16175 000a 0B46 mov r3, r1 @ movhi
- 16176 000c 7B81 strh r3, [r7, #10] @ movhi
- 16177 000e 1346 mov r3, r2
- 16178 0010 7B72 strb r3, [r7, #9]
- 7336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
- 7337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
- 16179 .loc 1 7337 3
- 16180 0012 FB68 ldr r3, [r7, #12]
- 16181 0014 1B68 ldr r3, [r3]
- 16182 0016 2A4A ldr r2, .L794
- 16183 0018 9342 cmp r3, r2
- 16184 001a 09D0 beq .L791
- 16185 .loc 1 7337 3 is_stmt 0 discriminator 1
- 16186 001c FB68 ldr r3, [r7, #12]
- 16187 001e 1B68 ldr r3, [r3]
- 16188 0020 284A ldr r2, .L794+4
- 16189 0022 9342 cmp r3, r2
- 16190 0024 04D0 beq .L791
- 16191 .loc 1 7337 3 discriminator 2
- 16192 0026 41F6A941 movw r1, #7337
- 16193 002a 2748 ldr r0, .L794+8
- 16194 002c FFF7FEFF bl assert_failed
- 16195 .L791:
- 7338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
- 16196 .loc 1 7338 3 is_stmt 1
- 16197 0030 7B68 ldr r3, [r7, #4]
- 16198 0032 B3F1807F cmp r3, #16777216
- 16199 0036 0BD0 beq .L792
- 16200 .loc 1 7338 3 is_stmt 0 discriminator 1
- 16201 0038 7B68 ldr r3, [r7, #4]
- 16202 003a B3F1007F cmp r3, #33554432
- 16203 003e 07D0 beq .L792
- 16204 .loc 1 7338 3 discriminator 2
- 16205 0040 7B68 ldr r3, [r7, #4]
- 16206 0042 002B cmp r3, #0
- 16207 0044 04D0 beq .L792
- 16208 .loc 1 7338 3 discriminator 3
- 16209 0046 41F6AA41 movw r1, #7338
- 16210 004a 1F48 ldr r0, .L794+8
- 16211 004c FFF7FEFF bl assert_failed
- 16212 .L792:
- 7339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
- 16213 .loc 1 7339 3 is_stmt 1
- 16214 0050 3B6A ldr r3, [r7, #32]
- 16215 0052 1E4A ldr r2, .L794+12
- 16216 0054 9342 cmp r3, r2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 417
- 16217 0056 0FD0 beq .L793
- 16218 .loc 1 7339 3 is_stmt 0 discriminator 1
- 16219 0058 3B6A ldr r3, [r7, #32]
- 16220 005a 1D4A ldr r2, .L794+16
- 16221 005c 9342 cmp r3, r2
- 16222 005e 0BD0 beq .L793
- 16223 .loc 1 7339 3 discriminator 2
- 16224 0060 3B6A ldr r3, [r7, #32]
- 16225 0062 1C4A ldr r2, .L794+20
- 16226 0064 9342 cmp r3, r2
- 16227 0066 07D0 beq .L793
- 16228 .loc 1 7339 3 discriminator 3
- 16229 0068 3B6A ldr r3, [r7, #32]
- 16230 006a 002B cmp r3, #0
- 16231 006c 04D0 beq .L793
- 16232 .loc 1 7339 3 discriminator 4
- 16233 006e 41F6AB41 movw r1, #7339
- 16234 0072 1548 ldr r0, .L794+8
- 16235 0074 FFF7FEFF bl assert_failed
- 16236 .L793:
- 7340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
- 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
- 16237 .loc 1 7342 52 is_stmt 1
- 16238 0078 7B89 ldrh r3, [r7, #10]
- 16239 007a C3F30902 ubfx r2, r3, #0, #10
- 7343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
- 16240 .loc 1 7343 32
- 16241 007e 7B7A ldrb r3, [r7, #9] @ zero_extendqisi2
- 16242 .loc 1 7343 47
- 16243 0080 1B04 lsls r3, r3, #16
- 16244 .loc 1 7343 70
- 16245 0082 03F47F03 and r3, r3, #16711680
- 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
- 16246 .loc 1 7342 68
- 16247 0086 1A43 orrs r2, r2, r3
- 16248 .loc 1 7343 88
- 16249 0088 7B68 ldr r3, [r7, #4]
- 16250 008a 1A43 orrs r2, r2, r3
- 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
- 16251 .loc 1 7342 19
- 16252 008c 3B6A ldr r3, [r7, #32]
- 16253 008e 1343 orrs r3, r3, r2
- 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
- 16254 .loc 1 7342 12
- 16255 0090 23F00043 bic r3, r3, #-2147483648
- 16256 0094 7B61 str r3, [r7, #20]
- 7344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
- 7345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */
- 7347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \
- 16257 .loc 1 7347 3
- 16258 0096 FB68 ldr r3, [r7, #12]
- 16259 0098 1B68 ldr r3, [r3]
- 16260 009a 5A68 ldr r2, [r3, #4]
- 16261 009c 3B6A ldr r3, [r7, #32]
- 16262 009e 5B0D lsrs r3, r3, #21
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 418
- 16263 00a0 03F48061 and r1, r3, #1024
- 16264 00a4 0C4B ldr r3, .L794+24
- 16265 00a6 0B43 orrs r3, r3, r1
- 16266 00a8 DB43 mvns r3, r3
- 16267 00aa 02EA0301 and r1, r2, r3
- 16268 00ae FB68 ldr r3, [r7, #12]
- 16269 00b0 1B68 ldr r3, [r3]
- 16270 00b2 7A69 ldr r2, [r7, #20]
- 16271 00b4 0A43 orrs r2, r2, r1
- 16272 00b6 5A60 str r2, [r3, #4]
- 7348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
- 7349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
- 7350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp);
- 7351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 16273 .loc 1 7351 1
- 16274 00b8 00BF nop
- 16275 00ba 1837 adds r7, r7, #24
- 16276 .LCFI404:
- 16277 .cfi_def_cfa_offset 8
- 16278 00bc BD46 mov sp, r7
- 16279 .LCFI405:
- 16280 .cfi_def_cfa_register 13
- 16281 @ sp needed
- 16282 00be 80BD pop {r7, pc}
- 16283 .L795:
- 16284 .align 2
- 16285 .L794:
- 16286 00c0 00540040 .word 1073763328
- 16287 00c4 00580040 .word 1073764352
- 16288 00c8 00000000 .word .LC0
- 16289 00cc 00400080 .word -2147467264
- 16290 00d0 00240080 .word -2147474432
- 16291 00d4 00200080 .word -2147475456
- 16292 00d8 FF63FF03 .word 67068927
- 16293 .cfi_endproc
- 16294 .LFE207:
- 16296 .section .text.I2C_Enable_IRQ,"ax",%progbits
- 16297 .align 1
- 16298 .syntax unified
- 16299 .thumb
- 16300 .thumb_func
- 16302 I2C_Enable_IRQ:
- 16303 .LFB208:
- 7352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 7354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
- 7355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 7356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 7357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
- 7358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 7359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
- 7361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16304 .loc 1 7361 1
- 16305 .cfi_startproc
- 16306 @ args = 0, pretend = 0, frame = 16
- 16307 @ frame_needed = 1, uses_anonymous_args = 0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 419
- 16308 @ link register save eliminated.
- 16309 0000 80B4 push {r7}
- 16310 .LCFI406:
- 16311 .cfi_def_cfa_offset 4
- 16312 .cfi_offset 7, -4
- 16313 0002 85B0 sub sp, sp, #20
- 16314 .LCFI407:
- 16315 .cfi_def_cfa_offset 24
- 16316 0004 00AF add r7, sp, #0
- 16317 .LCFI408:
- 16318 .cfi_def_cfa_register 7
- 16319 0006 7860 str r0, [r7, #4]
- 16320 0008 0B46 mov r3, r1
- 16321 000a 7B80 strh r3, [r7, #2] @ movhi
- 7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
- 16322 .loc 1 7362 12
- 16323 000c 0023 movs r3, #0
- 16324 000e FB60 str r3, [r7, #12]
- 7363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \
- 16325 .loc 1 7364 12
- 16326 0010 7B68 ldr r3, [r7, #4]
- 16327 0012 5B6B ldr r3, [r3, #52]
- 16328 .loc 1 7364 6
- 16329 0014 394A ldr r2, .L809
- 16330 0016 9342 cmp r3, r2
- 16331 0018 32D0 beq .L797
- 7365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
- 16332 .loc 1 7365 12 discriminator 1
- 16333 001a 7B68 ldr r3, [r7, #4]
- 16334 001c 5B6B ldr r3, [r3, #52]
- 7364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
- 16335 .loc 1 7364 45 discriminator 1
- 16336 001e 384A ldr r2, .L809+4
- 16337 0020 9342 cmp r3, r2
- 16338 0022 2DD0 beq .L797
- 7366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA))
- 16339 .loc 1 7366 12
- 16340 0024 7B68 ldr r3, [r7, #4]
- 16341 0026 5B6B ldr r3, [r3, #52]
- 7365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
- 16342 .loc 1 7365 44
- 16343 0028 364A ldr r2, .L809+8
- 16344 002a 9342 cmp r3, r2
- 16345 002c 28D0 beq .L797
- 7367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
- 16346 .loc 1 7368 49
- 16347 002e B7F90230 ldrsh r3, [r7, #2]
- 16348 .loc 1 7368 8
- 16349 0032 002B cmp r3, #0
- 16350 0034 03DA bge .L798
- 7369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
- 7371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
- 16351 .loc 1 7371 14
- 16352 0036 FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 420
- 16353 0038 43F0B803 orr r3, r3, #184
- 16354 003c FB60 str r3, [r7, #12]
- 16355 .L798:
- 7372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
- 16356 .loc 1 7374 27
- 16357 003e 7B88 ldrh r3, [r7, #2]
- 16358 0040 03F00103 and r3, r3, #1
- 16359 .loc 1 7374 8
- 16360 0044 002B cmp r3, #0
- 16361 0046 03D0 beq .L799
- 7375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
- 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;
- 16362 .loc 1 7377 14
- 16363 0048 FB68 ldr r3, [r7, #12]
- 16364 004a 43F0F203 orr r3, r3, #242
- 16365 004e FB60 str r3, [r7, #12]
- 16366 .L799:
- 7378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
- 16367 .loc 1 7380 27
- 16368 0050 7B88 ldrh r3, [r7, #2]
- 16369 0052 03F00203 and r3, r3, #2
- 16370 .loc 1 7380 8
- 16371 0056 002B cmp r3, #0
- 16372 0058 03D0 beq .L800
- 7381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
- 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;
- 16373 .loc 1 7383 14
- 16374 005a FB68 ldr r3, [r7, #12]
- 16375 005c 43F0F403 orr r3, r3, #244
- 16376 0060 FB60 str r3, [r7, #12]
- 16377 .L800:
- 7384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
- 16378 .loc 1 7386 8
- 16379 0062 7B88 ldrh r3, [r7, #2]
- 16380 0064 102B cmp r3, #16
- 16381 0066 03D1 bne .L801
- 7387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- 7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
- 16382 .loc 1 7389 14
- 16383 0068 FB68 ldr r3, [r7, #12]
- 16384 006a 43F09003 orr r3, r3, #144
- 16385 006e FB60 str r3, [r7, #12]
- 16386 .L801:
- 7390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
- 16387 .loc 1 7392 8
- 16388 0070 7B88 ldrh r3, [r7, #2]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 421
- 16389 0072 202B cmp r3, #32
- 16390 0074 33D1 bne .L803
- 7393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
- 7395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
- 16391 .loc 1 7395 14
- 16392 0076 FB68 ldr r3, [r7, #12]
- 16393 0078 43F02003 orr r3, r3, #32
- 16394 007c FB60 str r3, [r7, #12]
- 7392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16395 .loc 1 7392 8
- 16396 007e 2EE0 b .L803
- 16397 .L797:
- 7396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 7400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
- 16398 .loc 1 7401 49
- 16399 0080 B7F90230 ldrsh r3, [r7, #2]
- 16400 .loc 1 7401 8
- 16401 0084 002B cmp r3, #0
- 16402 0086 03DA bge .L804
- 7402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
- 7404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
- 16403 .loc 1 7404 14
- 16404 0088 FB68 ldr r3, [r7, #12]
- 16405 008a 43F0B803 orr r3, r3, #184
- 16406 008e FB60 str r3, [r7, #12]
- 16407 .L804:
- 7405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
- 16408 .loc 1 7407 27
- 16409 0090 7B88 ldrh r3, [r7, #2]
- 16410 0092 03F00103 and r3, r3, #1
- 16411 .loc 1 7407 8
- 16412 0096 002B cmp r3, #0
- 16413 0098 03D0 beq .L805
- 7408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
- 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;
- 16414 .loc 1 7410 14
- 16415 009a FB68 ldr r3, [r7, #12]
- 16416 009c 43F0F203 orr r3, r3, #242
- 16417 00a0 FB60 str r3, [r7, #12]
- 16418 .L805:
- 7411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
- 16419 .loc 1 7413 27
- 16420 00a2 7B88 ldrh r3, [r7, #2]
- 16421 00a4 03F00203 and r3, r3, #2
- 16422 .loc 1 7413 8
- 16423 00a8 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 422
- 16424 00aa 03D0 beq .L806
- 7414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
- 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;
- 16425 .loc 1 7416 14
- 16426 00ac FB68 ldr r3, [r7, #12]
- 16427 00ae 43F0F403 orr r3, r3, #244
- 16428 00b2 FB60 str r3, [r7, #12]
- 16429 .L806:
- 7417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
- 16430 .loc 1 7419 8
- 16431 00b4 7B88 ldrh r3, [r7, #2]
- 16432 00b6 102B cmp r3, #16
- 16433 00b8 03D1 bne .L807
- 7420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- 7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
- 16434 .loc 1 7422 14
- 16435 00ba FB68 ldr r3, [r7, #12]
- 16436 00bc 43F09003 orr r3, r3, #144
- 16437 00c0 FB60 str r3, [r7, #12]
- 16438 .L807:
- 7423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
- 16439 .loc 1 7425 8
- 16440 00c2 7B88 ldrh r3, [r7, #2]
- 16441 00c4 202B cmp r3, #32
- 16442 00c6 03D1 bne .L808
- 7426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
- 7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
- 16443 .loc 1 7428 14
- 16444 00c8 FB68 ldr r3, [r7, #12]
- 16445 00ca 43F06003 orr r3, r3, #96
- 16446 00ce FB60 str r3, [r7, #12]
- 16447 .L808:
- 7429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
- 16448 .loc 1 7431 8
- 16449 00d0 7B88 ldrh r3, [r7, #2]
- 16450 00d2 402B cmp r3, #64
- 16451 00d4 03D1 bne .L803
- 7432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
- 7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
- 16452 .loc 1 7434 14
- 16453 00d6 FB68 ldr r3, [r7, #12]
- 16454 00d8 43F04003 orr r3, r3, #64
- 16455 00dc FB60 str r3, [r7, #12]
- 16456 .L803:
- 7435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 423
- 7438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */
- 7439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
- 7440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */
- 7441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
- 16457 .loc 1 7441 3
- 16458 00de 7B68 ldr r3, [r7, #4]
- 16459 00e0 1B68 ldr r3, [r3]
- 16460 00e2 1968 ldr r1, [r3]
- 16461 00e4 7B68 ldr r3, [r7, #4]
- 16462 00e6 1B68 ldr r3, [r3]
- 16463 00e8 FA68 ldr r2, [r7, #12]
- 16464 00ea 0A43 orrs r2, r2, r1
- 16465 00ec 1A60 str r2, [r3]
- 7442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 16466 .loc 1 7442 1
- 16467 00ee 00BF nop
- 16468 00f0 1437 adds r7, r7, #20
- 16469 .LCFI409:
- 16470 .cfi_def_cfa_offset 4
- 16471 00f2 BD46 mov sp, r7
- 16472 .LCFI410:
- 16473 .cfi_def_cfa_register 13
- 16474 @ sp needed
- 16475 00f4 5DF8047B ldr r7, [sp], #4
- 16476 .LCFI411:
- 16477 .cfi_restore 7
- 16478 .cfi_def_cfa_offset 0
- 16479 00f8 7047 bx lr
- 16480 .L810:
- 16481 00fa 00BF .align 2
- 16482 .L809:
- 16483 00fc 00000000 .word I2C_Master_ISR_DMA
- 16484 0100 00000000 .word I2C_Slave_ISR_DMA
- 16485 0104 00000000 .word I2C_Mem_ISR_DMA
- 16486 .cfi_endproc
- 16487 .LFE208:
- 16489 .section .text.I2C_Disable_IRQ,"ax",%progbits
- 16490 .align 1
- 16491 .syntax unified
- 16492 .thumb
- 16493 .thumb_func
- 16495 I2C_Disable_IRQ:
- 16496 .LFB209:
- 7443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 7445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
- 7446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
- 7447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
- 7448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
- 7449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 7450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
- 7452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16497 .loc 1 7452 1
- 16498 .cfi_startproc
- 16499 @ args = 0, pretend = 0, frame = 16
- 16500 @ frame_needed = 1, uses_anonymous_args = 0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 424
- 16501 @ link register save eliminated.
- 16502 0000 80B4 push {r7}
- 16503 .LCFI412:
- 16504 .cfi_def_cfa_offset 4
- 16505 .cfi_offset 7, -4
- 16506 0002 85B0 sub sp, sp, #20
- 16507 .LCFI413:
- 16508 .cfi_def_cfa_offset 24
- 16509 0004 00AF add r7, sp, #0
- 16510 .LCFI414:
- 16511 .cfi_def_cfa_register 7
- 16512 0006 7860 str r0, [r7, #4]
- 16513 0008 0B46 mov r3, r1
- 16514 000a 7B80 strh r3, [r7, #2] @ movhi
- 7453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
- 16515 .loc 1 7453 12
- 16516 000c 0023 movs r3, #0
- 16517 000e FB60 str r3, [r7, #12]
- 7454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
- 16518 .loc 1 7455 25
- 16519 0010 7B88 ldrh r3, [r7, #2]
- 16520 0012 03F00103 and r3, r3, #1
- 16521 .loc 1 7455 6
- 16522 0016 002B cmp r3, #0
- 16523 0018 0FD0 beq .L812
- 7456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
- 7458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
- 16524 .loc 1 7458 12
- 16525 001a FB68 ldr r3, [r7, #12]
- 16526 001c 43F04203 orr r3, r3, #66
- 16527 0020 FB60 str r3, [r7, #12]
- 7459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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)
- 16528 .loc 1 7460 24
- 16529 0022 7B68 ldr r3, [r7, #4]
- 16530 0024 93F84130 ldrb r3, [r3, #65]
- 16531 0028 DBB2 uxtb r3, r3
- 16532 .loc 1 7460 32
- 16533 002a 03F02803 and r3, r3, #40
- 16534 .loc 1 7460 8
- 16535 002e 282B cmp r3, #40
- 16536 0030 03D0 beq .L812
- 7461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
- 7463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
- 16537 .loc 1 7463 14
- 16538 0032 FB68 ldr r3, [r7, #12]
- 16539 0034 43F0B003 orr r3, r3, #176
- 16540 0038 FB60 str r3, [r7, #12]
- 16541 .L812:
- 7464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
- 16542 .loc 1 7467 25
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 425
- 16543 003a 7B88 ldrh r3, [r7, #2]
- 16544 003c 03F00203 and r3, r3, #2
- 16545 .loc 1 7467 6
- 16546 0040 002B cmp r3, #0
- 16547 0042 0FD0 beq .L813
- 7468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
- 7470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
- 16548 .loc 1 7470 12
- 16549 0044 FB68 ldr r3, [r7, #12]
- 16550 0046 43F04403 orr r3, r3, #68
- 16551 004a FB60 str r3, [r7, #12]
- 7471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 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)
- 16552 .loc 1 7472 24
- 16553 004c 7B68 ldr r3, [r7, #4]
- 16554 004e 93F84130 ldrb r3, [r3, #65]
- 16555 0052 DBB2 uxtb r3, r3
- 16556 .loc 1 7472 32
- 16557 0054 03F02803 and r3, r3, #40
- 16558 .loc 1 7472 8
- 16559 0058 282B cmp r3, #40
- 16560 005a 03D0 beq .L813
- 7473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
- 7475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
- 16561 .loc 1 7475 14
- 16562 005c FB68 ldr r3, [r7, #12]
- 16563 005e 43F0B003 orr r3, r3, #176
- 16564 0062 FB60 str r3, [r7, #12]
- 16565 .L813:
- 7476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
- 16566 .loc 1 7479 47
- 16567 0064 B7F90230 ldrsh r3, [r7, #2]
- 16568 .loc 1 7479 6
- 16569 0068 002B cmp r3, #0
- 16570 006a 03DA bge .L814
- 7480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
- 7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
- 16571 .loc 1 7482 12
- 16572 006c FB68 ldr r3, [r7, #12]
- 16573 006e 43F0B803 orr r3, r3, #184
- 16574 0072 FB60 str r3, [r7, #12]
- 16575 .L814:
- 7483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
- 16576 .loc 1 7485 6
- 16577 0074 7B88 ldrh r3, [r7, #2]
- 16578 0076 102B cmp r3, #16
- 16579 0078 03D1 bne .L815
- 7486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 426
- 7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
- 16580 .loc 1 7488 12
- 16581 007a FB68 ldr r3, [r7, #12]
- 16582 007c 43F09003 orr r3, r3, #144
- 16583 0080 FB60 str r3, [r7, #12]
- 16584 .L815:
- 7489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
- 16585 .loc 1 7491 6
- 16586 0082 7B88 ldrh r3, [r7, #2]
- 16587 0084 202B cmp r3, #32
- 16588 0086 03D1 bne .L816
- 7492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
- 7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
- 16589 .loc 1 7494 12
- 16590 0088 FB68 ldr r3, [r7, #12]
- 16591 008a 43F02003 orr r3, r3, #32
- 16592 008e FB60 str r3, [r7, #12]
- 16593 .L816:
- 7495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
- 16594 .loc 1 7497 6
- 16595 0090 7B88 ldrh r3, [r7, #2]
- 16596 0092 402B cmp r3, #64
- 16597 0094 03D1 bne .L817
- 7498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
- 7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
- 16598 .loc 1 7500 12
- 16599 0096 FB68 ldr r3, [r7, #12]
- 16600 0098 43F04003 orr r3, r3, #64
- 16601 009c FB60 str r3, [r7, #12]
- 16602 .L817:
- 7501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */
- 7504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
- 7505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */
- 7506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
- 16603 .loc 1 7506 3
- 16604 009e 7B68 ldr r3, [r7, #4]
- 16605 00a0 1B68 ldr r3, [r3]
- 16606 00a2 1968 ldr r1, [r3]
- 16607 00a4 FB68 ldr r3, [r7, #12]
- 16608 00a6 DA43 mvns r2, r3
- 16609 00a8 7B68 ldr r3, [r7, #4]
- 16610 00aa 1B68 ldr r3, [r3]
- 16611 00ac 0A40 ands r2, r2, r1
- 16612 00ae 1A60 str r2, [r3]
- 7507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 16613 .loc 1 7507 1
- 16614 00b0 00BF nop
- 16615 00b2 1437 adds r7, r7, #20
- 16616 .LCFI415:
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 427
- 16617 .cfi_def_cfa_offset 4
- 16618 00b4 BD46 mov sp, r7
- 16619 .LCFI416:
- 16620 .cfi_def_cfa_register 13
- 16621 @ sp needed
- 16622 00b6 5DF8047B ldr r7, [sp], #4
- 16623 .LCFI417:
- 16624 .cfi_restore 7
- 16625 .cfi_def_cfa_offset 0
- 16626 00ba 7047 bx lr
- 16627 .cfi_endproc
- 16628 .LFE209:
- 16630 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
- 16631 .align 1
- 16632 .syntax unified
- 16633 .thumb
- 16634 .thumb_func
- 16636 I2C_ConvertOtherXferOptions:
- 16637 .LFB210:
- 7508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
- 7509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
- 7510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
- 7511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
- 7512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
- 7513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
- 7514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
- 7515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16638 .loc 1 7515 1
- 16639 .cfi_startproc
- 16640 @ args = 0, pretend = 0, frame = 8
- 16641 @ frame_needed = 1, uses_anonymous_args = 0
- 16642 @ link register save eliminated.
- 16643 0000 80B4 push {r7}
- 16644 .LCFI418:
- 16645 .cfi_def_cfa_offset 4
- 16646 .cfi_offset 7, -4
- 16647 0002 83B0 sub sp, sp, #12
- 16648 .LCFI419:
- 16649 .cfi_def_cfa_offset 16
- 16650 0004 00AF add r7, sp, #0
- 16651 .LCFI420:
- 16652 .cfi_def_cfa_register 7
- 16653 0006 7860 str r0, [r7, #4]
- 7516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
- 7517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
- 7518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
- 7519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
- 16654 .loc 1 7519 11
- 16655 0008 7B68 ldr r3, [r7, #4]
- 16656 000a DB6A ldr r3, [r3, #44]
- 16657 .loc 1 7519 6
- 16658 000c AA2B cmp r3, #170
- 16659 000e 03D1 bne .L819
- 7520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
- 16660 .loc 1 7521 23
- 16661 0010 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 428
- 16662 0012 0022 movs r2, #0
- 16663 0014 DA62 str r2, [r3, #44]
- 7522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
- 7524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
- 7525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
- 7526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
- 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
- 7528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
- 7530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
- 7532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 7533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
- 7534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 7535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 16664 .loc 1 7535 1
- 16665 0016 08E0 b .L821
- 16666 .L819:
- 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16667 .loc 1 7527 16
- 16668 0018 7B68 ldr r3, [r7, #4]
- 16669 001a DB6A ldr r3, [r3, #44]
- 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
- 16670 .loc 1 7527 11
- 16671 001c B3F52A4F cmp r3, #43520
- 16672 0020 03D1 bne .L821
- 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
- 16673 .loc 1 7529 23
- 16674 0022 7B68 ldr r3, [r7, #4]
- 16675 0024 4FF00072 mov r2, #33554432
- 16676 0028 DA62 str r2, [r3, #44]
- 16677 .L821:
- 16678 .loc 1 7535 1
- 16679 002a 00BF nop
- 16680 002c 0C37 adds r7, r7, #12
- 16681 .LCFI421:
- 16682 .cfi_def_cfa_offset 4
- 16683 002e BD46 mov sp, r7
- 16684 .LCFI422:
- 16685 .cfi_def_cfa_register 13
- 16686 @ sp needed
- 16687 0030 5DF8047B ldr r7, [sp], #4
- 16688 .LCFI423:
- 16689 .cfi_restore 7
- 16690 .cfi_def_cfa_offset 0
- 16691 0034 7047 bx lr
- 16692 .cfi_endproc
- 16693 .LFE210:
- 16695 .text
- 16696 .Letext0:
- 16697 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
- 16698 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
- 16699 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
- 16700 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
- 16701 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
- 16702 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 429
- 16703 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h"
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 430
- DEFINED SYMBOLS
- *ABS*:00000000 stm32f3xx_hal_i2c.c
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:20 .rodata:00000000 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:25 .text.HAL_I2C_Init:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:31 .text.HAL_I2C_Init:00000000 HAL_I2C_Init
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:518 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:398 .text.HAL_I2C_Init:00000234 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:405 .text.HAL_I2C_DeInit:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:411 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:560 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:505 .text.HAL_I2C_DeInit:0000007c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:512 .text.HAL_I2C_MspInit:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:554 .text.HAL_I2C_MspDeInit:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:596 .text.HAL_I2C_Master_Transmit:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:602 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15292 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16156 .text.I2C_TransferConfig:00000000 I2C_TransferConfig
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15429 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15544 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:970 .text.HAL_I2C_Master_Transmit:00000228 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:976 .text.HAL_I2C_Master_Receive:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:982 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15655 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1301 .text.HAL_I2C_Master_Receive:000001e4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1307 .text.HAL_I2C_Slave_Transmit:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1313 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14669 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1766 .text.HAL_I2C_Slave_Receive:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:1772 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2148 .text.HAL_I2C_Master_Transmit_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2154 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16302 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2360 .text.HAL_I2C_Master_Transmit_IT:00000124 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10300 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2367 .text.HAL_I2C_Master_Receive_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2373 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2523 .text.HAL_I2C_Master_Receive_IT:000000d4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2530 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2536 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2692 .text.HAL_I2C_Slave_Transmit_IT:000000d4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11194 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2698 .text.HAL_I2C_Slave_Receive_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2704 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2819 .text.HAL_I2C_Slave_Receive_IT:00000098 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2825 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:2831 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3187 .text.HAL_I2C_Master_Transmit_DMA:00000210 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11555 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14742 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15166 .text.I2C_DMAError:00000000 I2C_DMAError
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3197 .text.HAL_I2C_Master_Receive_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3203 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3506 .text.HAL_I2C_Master_Receive_DMA:000001c8 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14944 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3516 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3522 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3837 .text.HAL_I2C_Slave_Transmit_DMA:000001c8 $d
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 431
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12357 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14875 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3845 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:3851 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4092 .text.HAL_I2C_Slave_Receive_DMA:0000015c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15094 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4100 .text.HAL_I2C_Mem_Write:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4106 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12672 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4477 .text.HAL_I2C_Mem_Write:0000023c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4483 .text.HAL_I2C_Mem_Read:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4489 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12809 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4865 .text.HAL_I2C_Mem_Read:00000244 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4872 .text.HAL_I2C_Mem_Write_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:4878 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5076 .text.HAL_I2C_Mem_Write_IT:0000011c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10736 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5084 .text.HAL_I2C_Mem_Read_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5090 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5284 .text.HAL_I2C_Mem_Read_IT:00000114 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5292 .text.HAL_I2C_Mem_Write_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5298 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5611 .text.HAL_I2C_Mem_Write_DMA:000001d0 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11908 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5621 .text.HAL_I2C_Mem_Read_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5627 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5940 .text.HAL_I2C_Mem_Read_DMA:000001cc $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5950 .text.HAL_I2C_IsDeviceReady:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:5956 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6258 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6264 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16636 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6567 .text.HAL_I2C_Master_Seq_Transmit_IT:000001b8 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6574 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6580 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6976 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000024c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:6983 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000260 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7069 .text.HAL_I2C_Master_Seq_Transmit_DMA:000002e4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7074 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7080 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7304 .text.HAL_I2C_Master_Seq_Receive_IT:00000144 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7311 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7317 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7694 .text.HAL_I2C_Master_Seq_Receive_DMA:00000238 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7704 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7710 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16495 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7985 .text.HAL_I2C_Slave_Seq_Transmit_IT:000001a0 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15222 .text.I2C_DMAAbort:00000000 I2C_DMAAbort
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7992 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:7998 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8449 .text.HAL_I2C_Slave_Seq_Transmit_DMA:000002b8 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8456 .text.HAL_I2C_Slave_Seq_Transmit_DMA:000002cc $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8472 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8478 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8753 .text.HAL_I2C_Slave_Seq_Receive_IT:000001a0 $d
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 432
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8760 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:8766 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9217 .text.HAL_I2C_Slave_Seq_Receive_DMA:000002b8 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9224 .text.HAL_I2C_Slave_Seq_Receive_DMA:000002cc $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9240 .text.HAL_I2C_EnableListen_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9246 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9303 .text.HAL_I2C_EnableListen_IT:0000003c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9308 .text.HAL_I2C_DisableListen_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9314 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9395 .text.HAL_I2C_Master_Abort_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9401 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9520 .text.HAL_I2C_Master_Abort_IT:000000a4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9525 .text.HAL_I2C_EV_IRQHandler:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9531 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9591 .text.HAL_I2C_ER_IRQHandler:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9597 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14255 .text.I2C_ITError:00000000 I2C_ITError
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9734 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9740 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9776 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9782 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9818 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9824 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9860 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9866 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9902 .text.HAL_I2C_AddrCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9908 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9948 .text.HAL_I2C_ListenCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9954 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9990 .text.HAL_I2C_MemTxCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:9996 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10032 .text.HAL_I2C_MemRxCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10038 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10074 .text.HAL_I2C_ErrorCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10080 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10116 .text.HAL_I2C_AbortCpltCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10122 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10158 .text.HAL_I2C_GetState:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10164 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10204 .text.HAL_I2C_GetMode:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10210 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10250 .text.HAL_I2C_GetError:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10256 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10295 .text.I2C_Master_ISR_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13129 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13369 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:10731 .text.I2C_Mem_ISR_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11123 .text.I2C_Mem_ISR_IT:00000240 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11127 .text.I2C_Mem_ISR_IT:00000248 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11189 .text.I2C_Slave_ISR_IT:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13641 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14121 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13227 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12946 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11550 .text.I2C_Master_ISR_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:11903 .text.I2C_Mem_ISR_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12309 .text.I2C_Mem_ISR_DMA:00000260 $d
- ARM GAS C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s page 433
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12313 .text.I2C_Mem_ISR_DMA:00000268 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12352 .text.I2C_Slave_ISR_DMA:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12667 .text.I2C_RequestMemoryWrite:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12799 .text.I2C_RequestMemoryWrite:000000a4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12804 .text.I2C_RequestMemoryRead:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12936 .text.I2C_RequestMemoryRead:000000a4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:12941 .text.I2C_ITAddrCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13124 .text.I2C_ITMasterSeqCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13222 .text.I2C_ITSlaveSeqCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13364 .text.I2C_ITMasterCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13630 .text.I2C_ITMasterCplt:0000018c $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:13636 .text.I2C_ITSlaveCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14110 .text.I2C_ITSlaveCplt:000002cc $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14116 .text.I2C_ITListenCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14245 .text.I2C_ITListenCplt:000000a8 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14250 .text.I2C_ITError:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14595 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14583 .text.I2C_ITError:000001d4 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14590 .text.I2C_TreatErrorCallback:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14664 .text.I2C_Flush_TXDR:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14737 .text.I2C_DMAMasterTransmitCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14870 .text.I2C_DMASlaveTransmitCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:14939 .text.I2C_DMAMasterReceiveCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15089 .text.I2C_DMASlaveReceiveCplt:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15161 .text.I2C_DMAError:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15217 .text.I2C_DMAAbort:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15287 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15860 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15424 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15539 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15650 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15850 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000114 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:15855 .text.I2C_IsErrorOccurred:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16146 .text.I2C_IsErrorOccurred:000001bc $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16151 .text.I2C_TransferConfig:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16286 .text.I2C_TransferConfig:000000c0 $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16297 .text.I2C_Enable_IRQ:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16483 .text.I2C_Enable_IRQ:000000fc $d
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16490 .text.I2C_Disable_IRQ:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\cceYMt2U.s:16631 .text.I2C_ConvertOtherXferOptions:00000000 $t
- UNDEFINED SYMBOLS
- assert_failed
- HAL_GetTick
- HAL_DMA_Start_IT
- HAL_DMA_Abort_IT
- HAL_DMA_GetState
|