tasks.c.070i.icf 195 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680
  1. Parsed function:prvListTasksWithinSingleList.part.0
  2. Parsed function:vTaskSwitchContext.part.0
  3. Parsed function:xTaskResumeAll.part.0
  4. Parsed function:xTaskIncrementTick.part.0
  5. Parsed function:eTaskGetState.part.0
  6. Parsed function:prvAddCurrentTaskToDelayedList.part.0
  7. Parsed function:prvInitialiseNewTask.isra.0
  8. Parsed function:prvResetNextTaskUnblockTime.part.0
  9. Parsed function:prvTaskIsTaskSuspended.part.0
  10. Parsed function:prvAddCurrentTaskToDelayedList
  11. Parsed function:ulTaskGenericNotifyValueClear
  12. Parsed function:xTaskGenericNotifyStateClear
  13. Parsed function:vTaskGenericNotifyGiveFromISR
  14. Parsed function:xTaskGenericNotifyFromISR
  15. Parsed function:xTaskGenericNotify
  16. Parsed function:xTaskGenericNotifyWait
  17. Parsed function:ulTaskGenericNotifyTake
  18. Parsed function:pvTaskIncrementMutexHeldCount
  19. Parsed function:uxTaskResetEventItemValue
  20. Parsed function:vTaskList
  21. Parsed function:prvWriteNameToBuffer
  22. Parsed function:vTaskPriorityDisinheritAfterTimeout
  23. Parsed function:xTaskPriorityDisinherit
  24. Parsed function:xTaskPriorityInherit
  25. Parsed function:xTaskGetSchedulerState
  26. Parsed function:xTaskGetCurrentTaskHandle
  27. Parsed function:prvResetNextTaskUnblockTime
  28. Parsed function:prvDeleteTCB
  29. Parsed function:uxTaskGetStackHighWaterMark
  30. Parsed function:prvTaskCheckFreeStackSpace
  31. Parsed function:prvListTasksWithinSingleList
  32. Parsed function:vTaskGetInfo
  33. Parsed function:prvCheckTasksWaitingTermination
  34. Parsed function:prvInitialiseTaskLists
  35. Parsed function:prvIdleTask
  36. Parsed function:vTaskSetTaskNumber
  37. Parsed function:uxTaskGetTaskNumber
  38. Parsed function:vTaskMissedYield
  39. Parsed function:xTaskCheckForTimeOut
  40. Parsed function:vTaskInternalSetTimeOutState
  41. Parsed function:vTaskSetTimeOutState
  42. Parsed function:vTaskRemoveFromUnorderedEventList
  43. Parsed function:xTaskRemoveFromEventList
  44. Parsed function:vTaskPlaceOnEventListRestricted
  45. Parsed function:vTaskPlaceOnUnorderedEventList
  46. Parsed function:vTaskPlaceOnEventList
  47. Parsed function:vTaskSwitchContext
  48. Parsed function:xTaskIncrementTick
  49. Parsed function:xTaskAbortDelay
  50. Parsed function:xTaskCatchUpTicks
  51. Parsed function:uxTaskGetSystemState
  52. Parsed function:xTaskGetHandle
  53. Parsed function:prvSearchForNameWithinSingleList
  54. Parsed function:pcTaskGetName
  55. Parsed function:uxTaskGetNumberOfTasks
  56. Parsed function:xTaskGetTickCountFromISR
  57. Parsed function:xTaskGetTickCount
  58. Parsed function:xTaskResumeAll
  59. Parsed function:vTaskSuspendAll
  60. Parsed function:vTaskEndScheduler
  61. Parsed function:vTaskStartScheduler
  62. Parsed function:xTaskResumeFromISR
  63. Parsed function:vTaskResume
  64. Parsed function:prvTaskIsTaskSuspended
  65. Parsed function:vTaskSuspend
  66. Parsed function:vTaskPrioritySet
  67. Parsed function:uxTaskPriorityGetFromISR
  68. Parsed function:uxTaskPriorityGet
  69. Parsed function:eTaskGetState
  70. Parsed function:vTaskDelay
  71. Parsed function:xTaskDelayUntil
  72. Parsed function:vTaskDelete
  73. Parsed function:prvAddNewTaskToReadyList
  74. Parsed function:xTaskCreate
  75. Dump after hash based groups
  76. Congruence classes: 75 (unique hash values: 75), with total: 75 items
  77. Class size histogram [num of members]: number of classe number of classess
  78. [1]: 75 classes
  79. Dump after WPA based types groups
  80. Congruence classes: 75 (unique hash values: 75), with total: 75 items
  81. Class size histogram [num of members]: number of classe number of classess
  82. [1]: 75 classes
  83. Worklist has been filled with: 31
  84. Address reference subdivision created: 0 new classes.
  85. Dump after callgraph-based congruence reduction
  86. Congruence classes: 75 (unique hash values: 75), with total: 75 items
  87. Class size histogram [num of members]: number of classe number of classess
  88. [1]: 75 classes
  89. Init called for 0 items (0.00%).
  90. Dump after full equality comparison of groups
  91. Congruence classes: 75 (unique hash values: 75), with total: 75 items
  92. Class size histogram [num of members]: number of classe number of classess
  93. [1]: 75 classes
  94. Worklist has been filled with: 31
  95. Address reference subdivision created: 0 new classes.
  96. Congruence classes: 75 (unique hash values: 75), with total: 75 items
  97. Class size histogram [num of members]: number of classe number of classess
  98. [1]: 75 classes
  99. Item count: 75
  100. Congruent classes before: 75, after: 75
  101. Average class size before: 1.00, after: 1.00
  102. Average non-singular class size: 0.00, count: 0
  103. Equal symbols: 0
  104. Fraction of visited symbols: 0.00%
  105. prvListTasksWithinSingleList.part.0 (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState)
  106. {
  107. struct TCB_t * pxNextTCB;
  108. struct TCB_t * pxFirstTCB;
  109. UBaseType_t uxTask;
  110. struct List_t * const pxConstList;
  111. struct List_t * const pxConstList;
  112. struct ListItem_t * _2;
  113. struct xLIST_ITEM * _3;
  114. struct MiniListItem_t * _4;
  115. struct xLIST_ITEM * _5;
  116. struct ListItem_t * _6;
  117. struct ListItem_t * _8;
  118. struct xLIST_ITEM * _9;
  119. struct xLIST_ITEM * _10;
  120. struct ListItem_t * _11;
  121. long unsigned int _14;
  122. struct TaskStatus_t * _16;
  123. <bb 10> [local count: 118111600]:
  124. <bb 2> [local count: 118111600]:
  125. # DEBUG BEGIN_STMT
  126. # DEBUG pxConstList => pxList_1(D)
  127. # DEBUG BEGIN_STMT
  128. _2 = pxList_1(D)->pxIndex;
  129. _3 = _2->pxNext;
  130. pxList_1(D)->pxIndex = _3;
  131. # DEBUG BEGIN_STMT
  132. _4 = &pxList_1(D)->xListEnd;
  133. if (_3 == _4)
  134. goto <bb 3>; [30.00%]
  135. else
  136. goto <bb 4>; [70.00%]
  137. <bb 3> [local count: 35433480]:
  138. # DEBUG BEGIN_STMT
  139. _5 = MEM[(struct ListItem_t *)_3].pxNext;
  140. pxList_1(D)->pxIndex = _5;
  141. <bb 4> [local count: 118111600]:
  142. # DEBUG BEGIN_STMT
  143. _6 = pxList_1(D)->pxIndex;
  144. pxFirstTCB_7 = _6->pvOwner;
  145. # DEBUG pxFirstTCB => pxFirstTCB_7
  146. <bb 5> [local count: 1073741824]:
  147. # uxTask_13 = PHI <0(4), uxTask_18(8)>
  148. # DEBUG uxTask => uxTask_13
  149. # DEBUG BEGIN_STMT
  150. # DEBUG BEGIN_STMT
  151. # DEBUG BEGIN_STMT
  152. # DEBUG pxConstList => pxList_1(D)
  153. # DEBUG BEGIN_STMT
  154. _8 = pxList_1(D)->pxIndex;
  155. _9 = _8->pxNext;
  156. pxList_1(D)->pxIndex = _9;
  157. # DEBUG BEGIN_STMT
  158. if (_4 == _9)
  159. goto <bb 6>; [30.00%]
  160. else
  161. goto <bb 7>; [70.00%]
  162. <bb 6> [local count: 322122547]:
  163. # DEBUG BEGIN_STMT
  164. _10 = MEM[(struct ListItem_t *)_9].pxNext;
  165. pxList_1(D)->pxIndex = _10;
  166. <bb 7> [local count: 1073741824]:
  167. # DEBUG BEGIN_STMT
  168. _11 = pxList_1(D)->pxIndex;
  169. pxNextTCB_12 = _11->pvOwner;
  170. # DEBUG pxNextTCB => pxNextTCB_12
  171. # DEBUG BEGIN_STMT
  172. # DEBUG BEGIN_STMT
  173. _14 = uxTask_13 * 36;
  174. _16 = pxTaskStatusArray_15(D) + _14;
  175. vTaskGetInfo (pxNextTCB_12, _16, 1, eState_17(D));
  176. # DEBUG BEGIN_STMT
  177. uxTask_18 = uxTask_13 + 1;
  178. # DEBUG uxTask => uxTask_18
  179. # DEBUG BEGIN_STMT
  180. if (pxFirstTCB_7 != pxNextTCB_12)
  181. goto <bb 8>; [89.00%]
  182. else
  183. goto <bb 9>; [11.00%]
  184. <bb 8> [local count: 955630223]:
  185. goto <bb 5>; [100.00%]
  186. <bb 9> [local count: 118111601]:
  187. # uxTask_19 = PHI <uxTask_18(7)>
  188. # DEBUG uxTask => uxTask_19
  189. # DEBUG BEGIN_STMT
  190. # DEBUG BEGIN_STMT
  191. return uxTask_19;
  192. }
  193. __attribute__((used))
  194. vTaskSwitchContext.part.0 ()
  195. {
  196. UBaseType_t uxTopPriority;
  197. struct List_t * const pxConstList;
  198. uint32_t ulNewBASEPRI;
  199. <bb 5> [local count: 107374]:
  200. <bb 2> [local count: 107374]:
  201. # DEBUG BEGIN_STMT
  202. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  203. # DEBUG BEGIN_STMT
  204. # DEBUG BEGIN_STMT
  205. __asm__ __volatile__(" mov %0, %1
  206. msr basepri, %0
  207. isb
  208. dsb
  209. " : "=r" ulNewBASEPRI_1 : "i" 16 : "memory");
  210. # DEBUG ulNewBASEPRI => ulNewBASEPRI_1
  211. <bb 3> [local count: 1073741824]:
  212. # DEBUG ulNewBASEPRI => NULL
  213. # DEBUG BEGIN_STMT
  214. # DEBUG BEGIN_STMT
  215. # DEBUG BEGIN_STMT
  216. <bb 4> [local count: 1073741824]:
  217. goto <bb 3>; [100.00%]
  218. }
  219. xTaskResumeAll.part.0 ()
  220. {
  221. struct TCB_t * pxTCB;
  222. BaseType_t xAlreadyYielded;
  223. struct List_t * const pxList;
  224. struct List_t * const pxList;
  225. struct ListItem_t * const pxIndex;
  226. TickType_t xPendedCounts;
  227. uint32_t ulNewBASEPRI;
  228. long unsigned int uxSchedulerSuspended.63_1;
  229. long unsigned int _2;
  230. long unsigned int uxSchedulerSuspended.64_3;
  231. long unsigned int uxCurrentNumberOfTasks.65_4;
  232. struct xLIST_ITEM * _5;
  233. struct xLIST_ITEM * _8;
  234. struct xLIST_ITEM * _9;
  235. struct xLIST_ITEM * _10;
  236. struct ListItem_t * _11;
  237. struct ListItem_t * _12;
  238. long unsigned int _13;
  239. long unsigned int _14;
  240. struct xLIST_ITEM * _16;
  241. struct xLIST_ITEM * _17;
  242. struct ListItem_t * _18;
  243. struct ListItem_t * _19;
  244. long unsigned int _20;
  245. long unsigned int _21;
  246. long unsigned int _22;
  247. long unsigned int uxTopReadyPriority.66_23;
  248. struct xLIST_ITEM * _25;
  249. struct xLIST_ITEM * _26;
  250. struct List_t * _27;
  251. long unsigned int _28;
  252. long unsigned int _29;
  253. struct TCB_t * pxCurrentTCB.67_30;
  254. long unsigned int _31;
  255. long unsigned int _32;
  256. long int _35;
  257. long int xYieldPending.68_38;
  258. <bb 27> [local count: 472446400]:
  259. <bb 2> [local count: 472446400]:
  260. # DEBUG BEGIN_STMT
  261. # DEBUG BEGIN_STMT
  262. vPortEnterCritical ();
  263. # DEBUG BEGIN_STMT
  264. uxSchedulerSuspended.63_1 ={v} uxSchedulerSuspended;
  265. _2 = uxSchedulerSuspended.63_1 + 4294967295;
  266. uxSchedulerSuspended ={v} _2;
  267. # DEBUG BEGIN_STMT
  268. uxSchedulerSuspended.64_3 ={v} uxSchedulerSuspended;
  269. if (uxSchedulerSuspended.64_3 == 0)
  270. goto <bb 3>; [50.00%]
  271. else
  272. goto <bb 26>; [50.00%]
  273. <bb 3> [local count: 236223200]:
  274. # DEBUG BEGIN_STMT
  275. uxCurrentNumberOfTasks.65_4 ={v} uxCurrentNumberOfTasks;
  276. if (uxCurrentNumberOfTasks.65_4 != 0)
  277. goto <bb 4>; [50.00%]
  278. else
  279. goto <bb 26>; [50.00%]
  280. <bb 4> [local count: 118111600]:
  281. goto <bb 14>; [100.00%]
  282. <bb 5> [local count: 955630223]:
  283. # DEBUG BEGIN_STMT
  284. _5 = xPendingReadyList.xListEnd.pxNext;
  285. pxTCB_6 = _5->pvOwner;
  286. # DEBUG pxTCB => pxTCB_6
  287. # DEBUG BEGIN_STMT
  288. pxList_7 = pxTCB_6->xEventListItem.pvContainer;
  289. # DEBUG pxList => pxList_7
  290. # DEBUG BEGIN_STMT
  291. _8 = pxTCB_6->xEventListItem.pxNext;
  292. _9 = pxTCB_6->xEventListItem.pxPrevious;
  293. _8->pxPrevious = _9;
  294. # DEBUG BEGIN_STMT
  295. _10 = pxTCB_6->xEventListItem.pxPrevious;
  296. _10->pxNext = _8;
  297. # DEBUG BEGIN_STMT
  298. _11 = pxList_7->pxIndex;
  299. _12 = &pxTCB_6->xEventListItem;
  300. if (_11 == _12)
  301. goto <bb 6>; [30.00%]
  302. else
  303. goto <bb 7>; [70.00%]
  304. <bb 6> [local count: 286689066]:
  305. # DEBUG BEGIN_STMT
  306. pxList_7->pxIndex = _9;
  307. <bb 7> [local count: 955630223]:
  308. # DEBUG BEGIN_STMT
  309. pxTCB_6->xEventListItem.pvContainer = 0B;
  310. # DEBUG BEGIN_STMT
  311. _13 ={v} pxList_7->uxNumberOfItems;
  312. _14 = _13 + 4294967295;
  313. pxList_7->uxNumberOfItems ={v} _14;
  314. # DEBUG BEGIN_STMT
  315. # DEBUG BEGIN_STMT
  316. __asm__ __volatile__("" : : : "memory");
  317. # DEBUG BEGIN_STMT
  318. pxList_15 = pxTCB_6->xStateListItem.pvContainer;
  319. # DEBUG pxList => pxList_15
  320. # DEBUG BEGIN_STMT
  321. _16 = pxTCB_6->xStateListItem.pxNext;
  322. _17 = pxTCB_6->xStateListItem.pxPrevious;
  323. _16->pxPrevious = _17;
  324. # DEBUG BEGIN_STMT
  325. _17->pxNext = _16;
  326. # DEBUG BEGIN_STMT
  327. _18 = pxList_15->pxIndex;
  328. _19 = &pxTCB_6->xStateListItem;
  329. if (_18 == _19)
  330. goto <bb 8>; [30.00%]
  331. else
  332. goto <bb 9>; [70.00%]
  333. <bb 8> [local count: 286689066]:
  334. # DEBUG BEGIN_STMT
  335. pxList_15->pxIndex = _17;
  336. <bb 9> [local count: 955630223]:
  337. # DEBUG BEGIN_STMT
  338. # DEBUG BEGIN_STMT
  339. _20 ={v} pxList_15->uxNumberOfItems;
  340. _21 = _20 + 4294967295;
  341. pxList_15->uxNumberOfItems ={v} _21;
  342. # DEBUG BEGIN_STMT
  343. # DEBUG BEGIN_STMT
  344. # DEBUG BEGIN_STMT
  345. _22 = pxTCB_6->uxPriority;
  346. uxTopReadyPriority.66_23 ={v} uxTopReadyPriority;
  347. if (_22 > uxTopReadyPriority.66_23)
  348. goto <bb 10>; [50.00%]
  349. else
  350. goto <bb 11>; [50.00%]
  351. <bb 10> [local count: 477815111]:
  352. # DEBUG BEGIN_STMT
  353. uxTopReadyPriority ={v} _22;
  354. <bb 11> [local count: 955630223]:
  355. # DEBUG BEGIN_STMT
  356. # DEBUG BEGIN_STMT
  357. pxIndex_24 = pxReadyTasksLists[_22].pxIndex;
  358. # DEBUG pxIndex => pxIndex_24
  359. # DEBUG BEGIN_STMT
  360. # DEBUG BEGIN_STMT
  361. # DEBUG BEGIN_STMT
  362. pxTCB_6->xStateListItem.pxNext = pxIndex_24;
  363. # DEBUG BEGIN_STMT
  364. _25 = pxIndex_24->pxPrevious;
  365. pxTCB_6->xStateListItem.pxPrevious = _25;
  366. # DEBUG BEGIN_STMT
  367. _26 = pxIndex_24->pxPrevious;
  368. _26->pxNext = _19;
  369. # DEBUG BEGIN_STMT
  370. pxIndex_24->pxPrevious = _19;
  371. # DEBUG BEGIN_STMT
  372. _27 = &pxReadyTasksLists[_22];
  373. pxTCB_6->xStateListItem.pvContainer = _27;
  374. # DEBUG BEGIN_STMT
  375. _28 ={v} pxReadyTasksLists[_22].uxNumberOfItems;
  376. _29 = _28 + 1;
  377. pxReadyTasksLists[_22].uxNumberOfItems ={v} _29;
  378. # DEBUG BEGIN_STMT
  379. # DEBUG BEGIN_STMT
  380. # DEBUG BEGIN_STMT
  381. pxCurrentTCB.67_30 ={v} pxCurrentTCB;
  382. _31 = pxCurrentTCB.67_30->uxPriority;
  383. if (_22 >= _31)
  384. goto <bb 12>; [50.00%]
  385. else
  386. goto <bb 13>; [50.00%]
  387. <bb 12> [local count: 477815111]:
  388. # DEBUG BEGIN_STMT
  389. xYieldPending ={v} 1;
  390. <bb 13> [local count: 955630223]:
  391. # pxTCB_40 = PHI <pxTCB_6(11), pxTCB_6(12)>
  392. <bb 14> [local count: 1073741824]:
  393. # pxTCB_41 = PHI <0B(4), pxTCB_40(13)>
  394. # DEBUG pxTCB => pxTCB_41
  395. # DEBUG BEGIN_STMT
  396. # DEBUG BEGIN_STMT
  397. _32 ={v} xPendingReadyList.uxNumberOfItems;
  398. if (_32 != 0)
  399. goto <bb 5>; [89.00%]
  400. else
  401. goto <bb 15>; [11.00%]
  402. <bb 15> [local count: 118111601]:
  403. # pxTCB_33 = PHI <pxTCB_41(14)>
  404. # DEBUG BEGIN_STMT
  405. if (pxTCB_33 != 0B)
  406. goto <bb 16>; [53.47%]
  407. else
  408. goto <bb 17>; [46.53%]
  409. <bb 16> [local count: 63154273]:
  410. # DEBUG BEGIN_STMT
  411. prvResetNextTaskUnblockTime ();
  412. <bb 17> [local count: 118111601]:
  413. # DEBUG BEGIN_STMT
  414. xPendedCounts_34 ={v} xPendedTicks;
  415. # DEBUG xPendedCounts => xPendedCounts_34
  416. # DEBUG BEGIN_STMT
  417. if (xPendedCounts_34 != 0)
  418. goto <bb 18>; [50.00%]
  419. else
  420. goto <bb 24>; [50.00%]
  421. <bb 18> [local count: 59055800]:
  422. <bb 19> [local count: 536870915]:
  423. # xPendedCounts_36 = PHI <xPendedCounts_34(18), xPendedCounts_37(22)>
  424. # DEBUG xPendedCounts => xPendedCounts_36
  425. # DEBUG BEGIN_STMT
  426. # DEBUG BEGIN_STMT
  427. _35 = xTaskIncrementTick ();
  428. if (_35 != 0)
  429. goto <bb 20>; [50.00%]
  430. else
  431. goto <bb 21>; [50.00%]
  432. <bb 20> [local count: 268435457]:
  433. # DEBUG BEGIN_STMT
  434. xYieldPending ={v} 1;
  435. <bb 21> [local count: 536870915]:
  436. # DEBUG BEGIN_STMT
  437. # DEBUG BEGIN_STMT
  438. xPendedCounts_37 = xPendedCounts_36 + 4294967295;
  439. # DEBUG xPendedCounts => xPendedCounts_37
  440. # DEBUG BEGIN_STMT
  441. if (xPendedCounts_37 != 0)
  442. goto <bb 22>; [89.00%]
  443. else
  444. goto <bb 23>; [11.00%]
  445. <bb 22> [local count: 477815113]:
  446. goto <bb 19>; [100.00%]
  447. <bb 23> [local count: 59055801]:
  448. # DEBUG BEGIN_STMT
  449. xPendedTicks ={v} 0;
  450. <bb 24> [local count: 118111601]:
  451. # DEBUG BEGIN_STMT
  452. # DEBUG BEGIN_STMT
  453. xYieldPending.68_38 ={v} xYieldPending;
  454. if (xYieldPending.68_38 != 0)
  455. goto <bb 25>; [50.00%]
  456. else
  457. goto <bb 26>; [50.00%]
  458. <bb 25> [local count: 59055800]:
  459. # DEBUG BEGIN_STMT
  460. # DEBUG xAlreadyYielded => 1
  461. # DEBUG BEGIN_STMT
  462. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  463. # DEBUG BEGIN_STMT
  464. __asm__ __volatile__("dsb" : : : "memory");
  465. # DEBUG BEGIN_STMT
  466. __asm__ __volatile__("isb");
  467. # DEBUG BEGIN_STMT
  468. <bb 26> [local count: 472446401]:
  469. # xAlreadyYielded_39 = PHI <0(2), 0(3), 0(24), 1(25)>
  470. # DEBUG xAlreadyYielded => xAlreadyYielded_39
  471. # DEBUG BEGIN_STMT
  472. # DEBUG BEGIN_STMT
  473. vPortExitCritical ();
  474. # DEBUG BEGIN_STMT
  475. return xAlreadyYielded_39;
  476. }
  477. xTaskIncrementTick.part.0 ()
  478. {
  479. struct TCB_t * pxTCB;
  480. TickType_t xItemValue;
  481. BaseType_t xSwitchRequired;
  482. const TickType_t xConstTickCount;
  483. struct List_t * pxTemp;
  484. struct List_t * const pxList;
  485. struct List_t * const pxList;
  486. struct ListItem_t * const pxIndex;
  487. uint32_t ulNewBASEPRI;
  488. long unsigned int xTickCount.80_1;
  489. struct List_t * pxDelayedTaskList.81_3;
  490. long unsigned int _4;
  491. struct List_t * pxOverflowDelayedTaskList.82_7;
  492. long int xNumOfOverflows.83_8;
  493. long int _9;
  494. long unsigned int xNextTaskUnblockTime.84_10;
  495. struct List_t * pxDelayedTaskList.85_11;
  496. long unsigned int _12;
  497. struct List_t * pxDelayedTaskList.86_13;
  498. struct xLIST_ITEM * _14;
  499. struct xLIST_ITEM * _19;
  500. struct xLIST_ITEM * _20;
  501. struct ListItem_t * _21;
  502. struct ListItem_t * _22;
  503. long unsigned int _23;
  504. long unsigned int _24;
  505. struct xLIST * _25;
  506. struct xLIST_ITEM * _26;
  507. struct xLIST_ITEM * _27;
  508. struct xLIST_ITEM * _28;
  509. struct ListItem_t * _29;
  510. struct ListItem_t * _30;
  511. long unsigned int _31;
  512. long unsigned int _32;
  513. long unsigned int _33;
  514. long unsigned int uxTopReadyPriority.87_34;
  515. struct xLIST_ITEM * _36;
  516. struct xLIST_ITEM * _37;
  517. struct List_t * _38;
  518. long unsigned int _39;
  519. long unsigned int _40;
  520. struct TCB_t * pxCurrentTCB.88_41;
  521. long unsigned int _42;
  522. struct TCB_t * pxCurrentTCB.89_43;
  523. long unsigned int _44;
  524. long unsigned int _45;
  525. long int xYieldPending.90_46;
  526. <bb 30> [local count: 320519]:
  527. <bb 2> [local count: 320519]:
  528. # DEBUG BEGIN_STMT
  529. xTickCount.80_1 ={v} xTickCount;
  530. xConstTickCount_2 = xTickCount.80_1 + 1;
  531. # DEBUG xConstTickCount => xConstTickCount_2
  532. # DEBUG BEGIN_STMT
  533. xTickCount ={v} xConstTickCount_2;
  534. # DEBUG BEGIN_STMT
  535. if (xConstTickCount_2 == 0)
  536. goto <bb 3>; [50.00%]
  537. else
  538. goto <bb 8>; [50.00%]
  539. <bb 3> [local count: 160260]:
  540. # DEBUG BEGIN_STMT
  541. # DEBUG BEGIN_STMT
  542. pxDelayedTaskList.81_3 ={v} pxDelayedTaskList;
  543. _4 ={v} pxDelayedTaskList.81_3->uxNumberOfItems;
  544. if (_4 != 0)
  545. goto <bb 4>; [67.00%]
  546. else
  547. goto <bb 7>; [33.00%]
  548. <bb 4> [local count: 107374]:
  549. # DEBUG BEGIN_STMT
  550. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  551. # DEBUG BEGIN_STMT
  552. # DEBUG BEGIN_STMT
  553. __asm__ __volatile__(" mov %0, %1
  554. msr basepri, %0
  555. isb
  556. dsb
  557. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  558. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  559. <bb 5> [local count: 1073741824]:
  560. # DEBUG ulNewBASEPRI => NULL
  561. # DEBUG BEGIN_STMT
  562. # DEBUG BEGIN_STMT
  563. # DEBUG BEGIN_STMT
  564. <bb 6> [local count: 1073741824]:
  565. goto <bb 5>; [100.00%]
  566. <bb 7> [local count: 52886]:
  567. # DEBUG BEGIN_STMT
  568. # DEBUG BEGIN_STMT
  569. pxTemp_6 ={v} pxDelayedTaskList;
  570. # DEBUG pxTemp => pxTemp_6
  571. # DEBUG BEGIN_STMT
  572. pxOverflowDelayedTaskList.82_7 ={v} pxOverflowDelayedTaskList;
  573. pxDelayedTaskList ={v} pxOverflowDelayedTaskList.82_7;
  574. # DEBUG BEGIN_STMT
  575. pxOverflowDelayedTaskList ={v} pxTemp_6;
  576. # DEBUG BEGIN_STMT
  577. xNumOfOverflows.83_8 ={v} xNumOfOverflows;
  578. _9 = xNumOfOverflows.83_8 + 1;
  579. xNumOfOverflows ={v} _9;
  580. # DEBUG BEGIN_STMT
  581. prvResetNextTaskUnblockTime ();
  582. # DEBUG BEGIN_STMT
  583. <bb 8> [local count: 213145]:
  584. # DEBUG BEGIN_STMT
  585. # DEBUG BEGIN_STMT
  586. xNextTaskUnblockTime.84_10 ={v} xNextTaskUnblockTime;
  587. if (xConstTickCount_2 >= xNextTaskUnblockTime.84_10)
  588. goto <bb 9>; [50.00%]
  589. else
  590. goto <bb 25>; [50.00%]
  591. <bb 9> [local count: 106573]:
  592. goto <bb 11>; [100.00%]
  593. <bb 10> [local count: 889667]:
  594. # xSwitchRequired_48 = PHI <xSwitchRequired_49(23), 1(24)>
  595. <bb 11> [local count: 996239]:
  596. # xSwitchRequired_49 = PHI <0(9), xSwitchRequired_48(10)>
  597. # DEBUG xSwitchRequired => xSwitchRequired_49
  598. # DEBUG BEGIN_STMT
  599. # DEBUG BEGIN_STMT
  600. pxDelayedTaskList.85_11 ={v} pxDelayedTaskList;
  601. _12 ={v} pxDelayedTaskList.85_11->uxNumberOfItems;
  602. if (_12 == 0)
  603. goto <bb 12>; [5.50%]
  604. else
  605. goto <bb 13>; [94.50%]
  606. <bb 12> [local count: 54793]:
  607. # xSwitchRequired_50 = PHI <xSwitchRequired_49(11)>
  608. # DEBUG BEGIN_STMT
  609. xNextTaskUnblockTime ={v} 4294967295;
  610. # DEBUG BEGIN_STMT
  611. goto <bb 25>; [100.00%]
  612. <bb 13> [local count: 941446]:
  613. # DEBUG BEGIN_STMT
  614. pxDelayedTaskList.86_13 ={v} pxDelayedTaskList;
  615. _14 = pxDelayedTaskList.86_13->xListEnd.pxNext;
  616. pxTCB_15 = _14->pvOwner;
  617. # DEBUG pxTCB => pxTCB_15
  618. # DEBUG BEGIN_STMT
  619. xItemValue_16 = pxTCB_15->xStateListItem.xItemValue;
  620. # DEBUG xItemValue => xItemValue_16
  621. # DEBUG BEGIN_STMT
  622. if (xConstTickCount_2 < xItemValue_16)
  623. goto <bb 14>; [5.50%]
  624. else
  625. goto <bb 15>; [94.50%]
  626. <bb 14> [local count: 51780]:
  627. # xSwitchRequired_51 = PHI <xSwitchRequired_49(13)>
  628. # xItemValue_17 = PHI <xItemValue_16(13)>
  629. # DEBUG BEGIN_STMT
  630. xNextTaskUnblockTime ={v} xItemValue_17;
  631. # DEBUG BEGIN_STMT
  632. goto <bb 25>; [100.00%]
  633. <bb 15> [local count: 889667]:
  634. # DEBUG BEGIN_STMT
  635. # DEBUG BEGIN_STMT
  636. pxList_18 = pxTCB_15->xStateListItem.pvContainer;
  637. # DEBUG pxList => pxList_18
  638. # DEBUG BEGIN_STMT
  639. _19 = pxTCB_15->xStateListItem.pxNext;
  640. _20 = pxTCB_15->xStateListItem.pxPrevious;
  641. _19->pxPrevious = _20;
  642. # DEBUG BEGIN_STMT
  643. _20->pxNext = _19;
  644. # DEBUG BEGIN_STMT
  645. _21 = pxList_18->pxIndex;
  646. _22 = &pxTCB_15->xStateListItem;
  647. if (_21 == _22)
  648. goto <bb 16>; [30.00%]
  649. else
  650. goto <bb 17>; [70.00%]
  651. <bb 16> [local count: 266900]:
  652. # DEBUG BEGIN_STMT
  653. pxList_18->pxIndex = _20;
  654. <bb 17> [local count: 889667]:
  655. # DEBUG BEGIN_STMT
  656. pxTCB_15->xStateListItem.pvContainer = 0B;
  657. # DEBUG BEGIN_STMT
  658. _23 ={v} pxList_18->uxNumberOfItems;
  659. _24 = _23 + 4294967295;
  660. pxList_18->uxNumberOfItems ={v} _24;
  661. # DEBUG BEGIN_STMT
  662. # DEBUG BEGIN_STMT
  663. _25 = pxTCB_15->xEventListItem.pvContainer;
  664. if (_25 != 0B)
  665. goto <bb 18>; [70.00%]
  666. else
  667. goto <bb 21>; [30.00%]
  668. <bb 18> [local count: 622767]:
  669. # DEBUG BEGIN_STMT
  670. # DEBUG pxList => _25
  671. # DEBUG BEGIN_STMT
  672. _26 = pxTCB_15->xEventListItem.pxNext;
  673. _27 = pxTCB_15->xEventListItem.pxPrevious;
  674. _26->pxPrevious = _27;
  675. # DEBUG BEGIN_STMT
  676. _28 = pxTCB_15->xEventListItem.pxPrevious;
  677. _28->pxNext = _26;
  678. # DEBUG BEGIN_STMT
  679. _29 = MEM[(struct List_t *)_25].pxIndex;
  680. _30 = &pxTCB_15->xEventListItem;
  681. if (_29 == _30)
  682. goto <bb 19>; [30.00%]
  683. else
  684. goto <bb 20>; [70.00%]
  685. <bb 19> [local count: 186830]:
  686. # DEBUG BEGIN_STMT
  687. MEM[(struct List_t *)_25].pxIndex = _28;
  688. <bb 20> [local count: 622767]:
  689. # DEBUG BEGIN_STMT
  690. pxTCB_15->xEventListItem.pvContainer = 0B;
  691. # DEBUG BEGIN_STMT
  692. _31 ={v} MEM[(struct List_t *)_25].uxNumberOfItems;
  693. _32 = _31 + 4294967295;
  694. MEM[(struct List_t *)_25].uxNumberOfItems ={v} _32;
  695. # DEBUG BEGIN_STMT
  696. <bb 21> [local count: 889667]:
  697. # DEBUG BEGIN_STMT
  698. # DEBUG BEGIN_STMT
  699. # DEBUG BEGIN_STMT
  700. _33 = pxTCB_15->uxPriority;
  701. uxTopReadyPriority.87_34 ={v} uxTopReadyPriority;
  702. if (_33 > uxTopReadyPriority.87_34)
  703. goto <bb 22>; [50.00%]
  704. else
  705. goto <bb 23>; [50.00%]
  706. <bb 22> [local count: 444833]:
  707. # DEBUG BEGIN_STMT
  708. uxTopReadyPriority ={v} _33;
  709. <bb 23> [local count: 889667]:
  710. # DEBUG BEGIN_STMT
  711. # DEBUG BEGIN_STMT
  712. pxIndex_35 = pxReadyTasksLists[_33].pxIndex;
  713. # DEBUG pxIndex => pxIndex_35
  714. # DEBUG BEGIN_STMT
  715. # DEBUG BEGIN_STMT
  716. # DEBUG BEGIN_STMT
  717. pxTCB_15->xStateListItem.pxNext = pxIndex_35;
  718. # DEBUG BEGIN_STMT
  719. _36 = pxIndex_35->pxPrevious;
  720. pxTCB_15->xStateListItem.pxPrevious = _36;
  721. # DEBUG BEGIN_STMT
  722. _37 = pxIndex_35->pxPrevious;
  723. _37->pxNext = _22;
  724. # DEBUG BEGIN_STMT
  725. pxIndex_35->pxPrevious = _22;
  726. # DEBUG BEGIN_STMT
  727. _38 = &pxReadyTasksLists[_33];
  728. pxTCB_15->xStateListItem.pvContainer = _38;
  729. # DEBUG BEGIN_STMT
  730. _39 ={v} pxReadyTasksLists[_33].uxNumberOfItems;
  731. _40 = _39 + 1;
  732. pxReadyTasksLists[_33].uxNumberOfItems ={v} _40;
  733. # DEBUG BEGIN_STMT
  734. # DEBUG BEGIN_STMT
  735. # DEBUG BEGIN_STMT
  736. pxCurrentTCB.88_41 ={v} pxCurrentTCB;
  737. _42 = pxCurrentTCB.88_41->uxPriority;
  738. if (_33 >= _42)
  739. goto <bb 24>; [50.00%]
  740. else
  741. goto <bb 10>; [50.00%]
  742. <bb 24> [local count: 444833]:
  743. # DEBUG BEGIN_STMT
  744. # DEBUG xSwitchRequired => 1
  745. goto <bb 10>; [100.00%]
  746. <bb 25> [local count: 213145]:
  747. # xSwitchRequired_52 = PHI <0(8), xSwitchRequired_50(12), xSwitchRequired_51(14)>
  748. # DEBUG xSwitchRequired => xSwitchRequired_52
  749. # DEBUG BEGIN_STMT
  750. pxCurrentTCB.89_43 ={v} pxCurrentTCB;
  751. _44 = pxCurrentTCB.89_43->uxPriority;
  752. _45 ={v} pxReadyTasksLists[_44].uxNumberOfItems;
  753. if (_45 > 1)
  754. goto <bb 26>; [59.00%]
  755. else
  756. goto <bb 27>; [41.00%]
  757. <bb 26> [local count: 125756]:
  758. # DEBUG BEGIN_STMT
  759. # DEBUG xSwitchRequired => 1
  760. <bb 27> [local count: 213145]:
  761. # xSwitchRequired_53 = PHI <xSwitchRequired_52(25), 1(26)>
  762. # DEBUG xSwitchRequired => xSwitchRequired_53
  763. # DEBUG BEGIN_STMT
  764. # DEBUG BEGIN_STMT
  765. xYieldPending.90_46 ={v} xYieldPending;
  766. if (xYieldPending.90_46 != 0)
  767. goto <bb 28>; [50.00%]
  768. else
  769. goto <bb 29>; [50.00%]
  770. <bb 28> [local count: 106573]:
  771. # DEBUG BEGIN_STMT
  772. # DEBUG xSwitchRequired => 1
  773. <bb 29> [local count: 213145]:
  774. # xSwitchRequired_47 = PHI <xSwitchRequired_53(27), 1(28)>
  775. # DEBUG xSwitchRequired => xSwitchRequired_47
  776. # DEBUG BEGIN_STMT
  777. return xSwitchRequired_47;
  778. }
  779. eTaskGetState.part.0 (struct tskTaskControlBlock * xTask)
  780. {
  781. eTaskState eReturn;
  782. const struct List_t * pxStateList;
  783. const struct List_t * pxDelayedList;
  784. const struct List_t * pxOverflowedDelayedList;
  785. const struct TCB_t * const pxTCB;
  786. BaseType_t x;
  787. uint32_t ulNewBASEPRI;
  788. unsigned char _2;
  789. <bb 6> [local count: 566398813]:
  790. goto <bb 4>; [100.00%]
  791. <bb 2> [local count: 536870913]:
  792. # DEBUG BEGIN_STMT
  793. _2 ={v} MEM[(const struct TCB_t *)xTask_1(D)].ucNotifyState[0];
  794. if (_2 == 1)
  795. goto <bb 5>; [5.50%]
  796. else
  797. goto <bb 3>; [94.50%]
  798. <bb 3> [local count: 507343012]:
  799. <bb 4> [local count: 1073741824]:
  800. # x_3 = PHI <1(3), 0(6)>
  801. # DEBUG eReturn => NULL
  802. # DEBUG x => x_3
  803. # DEBUG BEGIN_STMT
  804. if (x_3 == 0)
  805. goto <bb 2>; [50.00%]
  806. else
  807. goto <bb 5>; [50.00%]
  808. <bb 5> [local count: 566398813]:
  809. # eReturn_4 = PHI <2(2), 3(4)>
  810. # DEBUG eReturn => eReturn_4
  811. # DEBUG BEGIN_STMT
  812. return eReturn_4;
  813. }
  814. prvAddCurrentTaskToDelayedList.part.0 ()
  815. {
  816. TickType_t xTimeToWake;
  817. const TickType_t xConstTickCount;
  818. struct ListItem_t * const pxIndex;
  819. TickType_t xTicksToWait;
  820. const BaseType_t xCanBlockIndefinitely;
  821. struct TCB_t * pxCurrentTCB.25_2;
  822. struct TCB_t * pxCurrentTCB.26_3;
  823. struct xLIST_ITEM * _4;
  824. struct TCB_t * pxCurrentTCB.27_5;
  825. struct xLIST_ITEM * _6;
  826. struct ListItem_t * _7;
  827. struct TCB_t * pxCurrentTCB.28_8;
  828. struct ListItem_t * _9;
  829. struct TCB_t * pxCurrentTCB.29_10;
  830. long unsigned int _11;
  831. long unsigned int _12;
  832. <bb 4> [local count: 1073741824]:
  833. # DEBUG D#5 s=> xTicksToWait
  834. # DEBUG xTicksToWait => D#5
  835. # DEBUG D#4 s=> xCanBlockIndefinitely
  836. # DEBUG xCanBlockIndefinitely => D#4
  837. <bb 2> [local count: 1073741824]:
  838. # DEBUG BEGIN_STMT
  839. pxIndex_1 = xSuspendedTaskList.pxIndex;
  840. # DEBUG pxIndex => pxIndex_1
  841. # DEBUG BEGIN_STMT
  842. # DEBUG BEGIN_STMT
  843. # DEBUG BEGIN_STMT
  844. pxCurrentTCB.25_2 ={v} pxCurrentTCB;
  845. pxCurrentTCB.25_2->xStateListItem.pxNext = pxIndex_1;
  846. # DEBUG BEGIN_STMT
  847. pxCurrentTCB.26_3 ={v} pxCurrentTCB;
  848. _4 = pxIndex_1->pxPrevious;
  849. pxCurrentTCB.26_3->xStateListItem.pxPrevious = _4;
  850. # DEBUG BEGIN_STMT
  851. pxCurrentTCB.27_5 ={v} pxCurrentTCB;
  852. _6 = pxIndex_1->pxPrevious;
  853. _7 = &pxCurrentTCB.27_5->xStateListItem;
  854. _6->pxNext = _7;
  855. # DEBUG BEGIN_STMT
  856. pxCurrentTCB.28_8 ={v} pxCurrentTCB;
  857. _9 = &pxCurrentTCB.28_8->xStateListItem;
  858. pxIndex_1->pxPrevious = _9;
  859. # DEBUG BEGIN_STMT
  860. pxCurrentTCB.29_10 ={v} pxCurrentTCB;
  861. pxCurrentTCB.29_10->xStateListItem.pvContainer = &xSuspendedTaskList;
  862. # DEBUG BEGIN_STMT
  863. _11 ={v} xSuspendedTaskList.uxNumberOfItems;
  864. _12 = _11 + 1;
  865. xSuspendedTaskList.uxNumberOfItems ={v} _12;
  866. # DEBUG BEGIN_STMT
  867. <bb 3> [local count: 1073741824]:
  868. # DEBUG BEGIN_STMT
  869. return;
  870. }
  871. prvInitialiseNewTask.isra.0 (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask, struct TCB_t * pxNewTCB)
  872. {
  873. StackType_t * pxTopOfStack;
  874. UBaseType_t x;
  875. uint32_t ulNewBASEPRI;
  876. StackType_t * _2;
  877. unsigned int _4;
  878. StackType_t * _5;
  879. sizetype _6;
  880. sizetype _7;
  881. long unsigned int pxTopOfStack.0_9;
  882. long unsigned int _10;
  883. const char * _14;
  884. char _15;
  885. char _16;
  886. struct ListItem_t * _20;
  887. struct ListItem_t * _21;
  888. long unsigned int _22;
  889. volatile uint32_t * _23;
  890. volatile uint8_t * _24;
  891. StackType_t * _27;
  892. <bb 16> [local count: 160260]:
  893. # DEBUG xRegions s=> xRegions
  894. <bb 2> [local count: 160260]:
  895. # DEBUG BEGIN_STMT
  896. # DEBUG BEGIN_STMT
  897. # DEBUG BEGIN_STMT
  898. _2 = pxNewTCB_1(D)->pxStack;
  899. _4 = ulStackDepth_3(D) * 4;
  900. memset (_2, 165, _4);
  901. # DEBUG BEGIN_STMT
  902. _5 = pxNewTCB_1(D)->pxStack;
  903. _6 = ulStackDepth_3(D) + 1073741823;
  904. _7 = _6 * 4;
  905. pxTopOfStack_8 = _5 + _7;
  906. # DEBUG pxTopOfStack => pxTopOfStack_8
  907. # DEBUG BEGIN_STMT
  908. pxTopOfStack.0_9 = (long unsigned int) pxTopOfStack_8;
  909. _10 = pxTopOfStack.0_9 & 4294967288;
  910. pxTopOfStack_11 = (StackType_t *) _10;
  911. # DEBUG pxTopOfStack => pxTopOfStack_11
  912. # DEBUG BEGIN_STMT
  913. # DEBUG BEGIN_STMT
  914. # DEBUG BEGIN_STMT
  915. if (pcName_12(D) != 0B)
  916. goto <bb 3>; [70.00%]
  917. else
  918. goto <bb 8>; [30.00%]
  919. <bb 3> [local count: 112182]:
  920. goto <bb 6>; [100.00%]
  921. <bb 4> [local count: 723805]:
  922. # DEBUG BEGIN_STMT
  923. _14 = pcName_12(D) + x_13;
  924. _15 = *_14;
  925. pxNewTCB_1(D)->pcTaskName[x_13] = _15;
  926. # DEBUG BEGIN_STMT
  927. _16 = *_14;
  928. if (_16 == 0)
  929. goto <bb 7>; [5.50%]
  930. else
  931. goto <bb 5>; [94.50%]
  932. <bb 5> [local count: 683996]:
  933. # DEBUG BEGIN_STMT
  934. # DEBUG BEGIN_STMT
  935. x_17 = x_13 + 1;
  936. # DEBUG x => x_17
  937. <bb 6> [local count: 796177]:
  938. # x_13 = PHI <0(3), x_17(5)>
  939. # DEBUG x => x_13
  940. # DEBUG BEGIN_STMT
  941. if (x_13 != 10)
  942. goto <bb 4>; [90.91%]
  943. else
  944. goto <bb 7>; [9.09%]
  945. <bb 7> [local count: 112182]:
  946. # DEBUG BEGIN_STMT
  947. pxNewTCB_1(D)->pcTaskName[9] = 0;
  948. goto <bb 9>; [100.00%]
  949. <bb 8> [local count: 48078]:
  950. # DEBUG BEGIN_STMT
  951. pxNewTCB_1(D)->pcTaskName[0] = 0;
  952. <bb 9> [local count: 160260]:
  953. # DEBUG BEGIN_STMT
  954. if (uxPriority_18(D) > 4)
  955. goto <bb 10>; [67.00%]
  956. else
  957. goto <bb 13>; [33.00%]
  958. <bb 10> [local count: 107374]:
  959. # DEBUG BEGIN_STMT
  960. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  961. # DEBUG BEGIN_STMT
  962. # DEBUG BEGIN_STMT
  963. __asm__ __volatile__(" mov %0, %1
  964. msr basepri, %0
  965. isb
  966. dsb
  967. " : "=r" ulNewBASEPRI_19 : "i" 16 : "memory");
  968. # DEBUG ulNewBASEPRI => ulNewBASEPRI_19
  969. <bb 11> [local count: 1073741824]:
  970. # DEBUG ulNewBASEPRI => NULL
  971. # DEBUG BEGIN_STMT
  972. # DEBUG BEGIN_STMT
  973. # DEBUG BEGIN_STMT
  974. <bb 12> [local count: 1073741824]:
  975. goto <bb 11>; [100.00%]
  976. <bb 13> [local count: 52886]:
  977. # DEBUG BEGIN_STMT
  978. # DEBUG BEGIN_STMT
  979. # DEBUG uxPriority => uxPriority_18(D)
  980. # DEBUG BEGIN_STMT
  981. # DEBUG BEGIN_STMT
  982. pxNewTCB_1(D)->uxPriority = uxPriority_18(D);
  983. # DEBUG BEGIN_STMT
  984. pxNewTCB_1(D)->uxBasePriority = uxPriority_18(D);
  985. # DEBUG BEGIN_STMT
  986. pxNewTCB_1(D)->uxMutexesHeld = 0;
  987. # DEBUG BEGIN_STMT
  988. _20 = &pxNewTCB_1(D)->xStateListItem;
  989. vListInitialiseItem (_20);
  990. # DEBUG BEGIN_STMT
  991. _21 = &pxNewTCB_1(D)->xEventListItem;
  992. vListInitialiseItem (_21);
  993. # DEBUG BEGIN_STMT
  994. pxNewTCB_1(D)->xStateListItem.pvOwner = pxNewTCB_1(D);
  995. # DEBUG BEGIN_STMT
  996. _22 = 5 - uxPriority_18(D);
  997. pxNewTCB_1(D)->xEventListItem.xItemValue = _22;
  998. # DEBUG BEGIN_STMT
  999. pxNewTCB_1(D)->xEventListItem.pvOwner = pxNewTCB_1(D);
  1000. # DEBUG BEGIN_STMT
  1001. # DEBUG BEGIN_STMT
  1002. _23 = &pxNewTCB_1(D)->ulNotifiedValue[0];
  1003. memset (_23, 0, 4);
  1004. # DEBUG BEGIN_STMT
  1005. _24 = &pxNewTCB_1(D)->ucNotifyState[0];
  1006. memset (_24, 0, 1);
  1007. # DEBUG BEGIN_STMT
  1008. pxNewTCB_1(D)->ucDelayAborted = 0;
  1009. # DEBUG BEGIN_STMT
  1010. _27 = pxPortInitialiseStack (pxTopOfStack_11, pxTaskCode_25(D), pvParameters_26(D));
  1011. pxNewTCB_1(D)->pxTopOfStack = _27;
  1012. # DEBUG BEGIN_STMT
  1013. if (pxCreatedTask_28(D) != 0B)
  1014. goto <bb 14>; [70.00%]
  1015. else
  1016. goto <bb 15>; [30.00%]
  1017. <bb 14> [local count: 37020]:
  1018. # DEBUG BEGIN_STMT
  1019. *pxCreatedTask_28(D) = pxNewTCB_1(D);
  1020. <bb 15> [local count: 52886]:
  1021. # DEBUG BEGIN_STMT
  1022. return;
  1023. }
  1024. prvResetNextTaskUnblockTime.part.0 ()
  1025. {
  1026. struct List_t * pxDelayedTaskList.21_1;
  1027. struct xLIST_ITEM * _2;
  1028. long unsigned int _3;
  1029. <bb 4> [local count: 1073741824]:
  1030. <bb 2> [local count: 1073741824]:
  1031. # DEBUG BEGIN_STMT
  1032. pxDelayedTaskList.21_1 ={v} pxDelayedTaskList;
  1033. _2 = pxDelayedTaskList.21_1->xListEnd.pxNext;
  1034. _3 = _2->xItemValue;
  1035. xNextTaskUnblockTime ={v} _3;
  1036. <bb 3> [local count: 1073741824]:
  1037. return;
  1038. }
  1039. prvTaskIsTaskSuspended.part.0 (struct tskTaskControlBlock * const xTask)
  1040. {
  1041. BaseType_t xReturn;
  1042. const struct TCB_t * const pxTCB;
  1043. uint32_t ulNewBASEPRI;
  1044. struct xLIST * _2;
  1045. <bb 6> [local count: 1073741824]:
  1046. <bb 2> [local count: 1073741824]:
  1047. # DEBUG BEGIN_STMT
  1048. _2 = MEM[(const struct TCB_t *)xTask_1(D)].xEventListItem.pvContainer;
  1049. if (_2 != &xPendingReadyList)
  1050. goto <bb 3>; [70.00%]
  1051. else
  1052. goto <bb 5>; [30.00%]
  1053. <bb 3> [local count: 751619278]:
  1054. # DEBUG BEGIN_STMT
  1055. if (_2 == 0B)
  1056. goto <bb 4>; [30.00%]
  1057. else
  1058. goto <bb 5>; [70.00%]
  1059. <bb 4> [local count: 225485783]:
  1060. # DEBUG BEGIN_STMT
  1061. # DEBUG xReturn => 1
  1062. <bb 5> [local count: 1073741824]:
  1063. # xReturn_3 = PHI <0(2), 0(3), 1(4)>
  1064. # DEBUG xReturn => xReturn_3
  1065. # DEBUG BEGIN_STMT
  1066. # DEBUG BEGIN_STMT
  1067. return xReturn_3;
  1068. }
  1069. prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely)
  1070. {
  1071. const TickType_t xConstTickCount;
  1072. TickType_t xTimeToWake;
  1073. struct TCB_t * pxCurrentTCB.23_1;
  1074. struct TCB_t * pxCurrentTCB.24_2;
  1075. struct ListItem_t * _3;
  1076. struct TCB_t * pxCurrentTCB.30_5;
  1077. struct List_t * pxOverflowDelayedTaskList.31_6;
  1078. struct TCB_t * pxCurrentTCB.32_7;
  1079. struct ListItem_t * _8;
  1080. struct List_t * pxDelayedTaskList.33_9;
  1081. struct TCB_t * pxCurrentTCB.34_10;
  1082. struct ListItem_t * _11;
  1083. long unsigned int xNextTaskUnblockTime.35_12;
  1084. <bb 2> [local count: 1073741823]:
  1085. # DEBUG BEGIN_STMT
  1086. # DEBUG BEGIN_STMT
  1087. xConstTickCount_14 ={v} xTickCount;
  1088. # DEBUG xConstTickCount => xConstTickCount_14
  1089. # DEBUG BEGIN_STMT
  1090. pxCurrentTCB.23_1 ={v} pxCurrentTCB;
  1091. pxCurrentTCB.23_1->ucDelayAborted = 0;
  1092. # DEBUG BEGIN_STMT
  1093. pxCurrentTCB.24_2 ={v} pxCurrentTCB;
  1094. _3 = &pxCurrentTCB.24_2->xStateListItem;
  1095. uxListRemove (_3);
  1096. # DEBUG BEGIN_STMT
  1097. # DEBUG BEGIN_STMT
  1098. if (xTicksToWait_17(D) == 4294967295)
  1099. goto <bb 3>; [34.00%]
  1100. else
  1101. goto <bb 5>; [66.00%]
  1102. <bb 3> [local count: 365072220]:
  1103. if (xCanBlockIndefinitely_18(D) != 0)
  1104. goto <bb 4>; [50.00%]
  1105. else
  1106. goto <bb 5>; [50.00%]
  1107. <bb 4> [local count: 182536110]:
  1108. # DEBUG D#2 => xTicksToWait_17(D)
  1109. # DEBUG D#3 => xCanBlockIndefinitely_18(D)
  1110. prvAddCurrentTaskToDelayedList.part.0 ();
  1111. goto <bb 9>; [100.00%]
  1112. <bb 5> [local count: 891205713]:
  1113. # DEBUG BEGIN_STMT
  1114. xTimeToWake_19 = xConstTickCount_14 + xTicksToWait_17(D);
  1115. # DEBUG xTimeToWake => xTimeToWake_19
  1116. # DEBUG BEGIN_STMT
  1117. pxCurrentTCB.30_5 ={v} pxCurrentTCB;
  1118. pxCurrentTCB.30_5->xStateListItem.xItemValue = xTimeToWake_19;
  1119. # DEBUG BEGIN_STMT
  1120. if (xConstTickCount_14 > xTimeToWake_19)
  1121. goto <bb 6>; [50.00%]
  1122. else
  1123. goto <bb 7>; [50.00%]
  1124. <bb 6> [local count: 445602856]:
  1125. # DEBUG BEGIN_STMT
  1126. pxOverflowDelayedTaskList.31_6 ={v} pxOverflowDelayedTaskList;
  1127. pxCurrentTCB.32_7 ={v} pxCurrentTCB;
  1128. _8 = &pxCurrentTCB.32_7->xStateListItem;
  1129. vListInsert (pxOverflowDelayedTaskList.31_6, _8);
  1130. goto <bb 9>; [100.00%]
  1131. <bb 7> [local count: 445602856]:
  1132. # DEBUG BEGIN_STMT
  1133. pxDelayedTaskList.33_9 ={v} pxDelayedTaskList;
  1134. pxCurrentTCB.34_10 ={v} pxCurrentTCB;
  1135. _11 = &pxCurrentTCB.34_10->xStateListItem;
  1136. vListInsert (pxDelayedTaskList.33_9, _11);
  1137. # DEBUG BEGIN_STMT
  1138. xNextTaskUnblockTime.35_12 ={v} xNextTaskUnblockTime;
  1139. if (xNextTaskUnblockTime.35_12 > xTimeToWake_19)
  1140. goto <bb 8>; [50.00%]
  1141. else
  1142. goto <bb 9>; [50.00%]
  1143. <bb 8> [local count: 222801428]:
  1144. # DEBUG BEGIN_STMT
  1145. xNextTaskUnblockTime ={v} xTimeToWake_19;
  1146. <bb 9> [local count: 1073741824]:
  1147. # DEBUG BEGIN_STMT
  1148. return;
  1149. }
  1150. ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear)
  1151. {
  1152. uint32_t ulReturn;
  1153. long unsigned int _1;
  1154. long unsigned int _2;
  1155. long unsigned int _3;
  1156. struct TCB_t * iftmp.164_4;
  1157. struct TCB_t * iftmp.164_7;
  1158. <bb 2> [local count: 1073741824]:
  1159. # DEBUG BEGIN_STMT
  1160. # DEBUG BEGIN_STMT
  1161. # DEBUG BEGIN_STMT
  1162. if (xTask_5(D) == 0B)
  1163. goto <bb 3>; [30.00%]
  1164. else
  1165. goto <bb 4>; [70.00%]
  1166. <bb 3> [local count: 322122547]:
  1167. iftmp.164_7 ={v} pxCurrentTCB;
  1168. <bb 4> [local count: 1073741824]:
  1169. # iftmp.164_4 = PHI <iftmp.164_7(3), xTask_5(D)(2)>
  1170. # DEBUG pxTCB => iftmp.164_4
  1171. # DEBUG BEGIN_STMT
  1172. vPortEnterCritical ();
  1173. # DEBUG BEGIN_STMT
  1174. ulReturn_10 ={v} iftmp.164_4->ulNotifiedValue[uxIndexToClear_9(D)];
  1175. # DEBUG ulReturn => ulReturn_10
  1176. # DEBUG BEGIN_STMT
  1177. _1 ={v} iftmp.164_4->ulNotifiedValue[uxIndexToClear_9(D)];
  1178. _2 = ~ulBitsToClear_11(D);
  1179. _3 = _1 & _2;
  1180. iftmp.164_4->ulNotifiedValue[uxIndexToClear_9(D)] ={v} _3;
  1181. # DEBUG BEGIN_STMT
  1182. vPortExitCritical ();
  1183. # DEBUG BEGIN_STMT
  1184. return ulReturn_10;
  1185. }
  1186. xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear)
  1187. {
  1188. uint32_t ulNewBASEPRI;
  1189. BaseType_t xReturn;
  1190. unsigned char _1;
  1191. struct TCB_t * iftmp.163_3;
  1192. struct TCB_t * iftmp.163_8;
  1193. <bb 2> [local count: 214748]:
  1194. # DEBUG BEGIN_STMT
  1195. # DEBUG BEGIN_STMT
  1196. # DEBUG BEGIN_STMT
  1197. if (uxIndexToClear_5(D) != 0)
  1198. goto <bb 3>; [50.00%]
  1199. else
  1200. goto <bb 5>; [50.00%]
  1201. <bb 3> [local count: 107374]:
  1202. # DEBUG BEGIN_STMT
  1203. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1204. # DEBUG BEGIN_STMT
  1205. # DEBUG BEGIN_STMT
  1206. __asm__ __volatile__(" mov %0, %1
  1207. msr basepri, %0
  1208. isb
  1209. dsb
  1210. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  1211. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  1212. <bb 4> [local count: 1073741824]:
  1213. # DEBUG ulNewBASEPRI => NULL
  1214. # DEBUG BEGIN_STMT
  1215. # DEBUG BEGIN_STMT
  1216. # DEBUG BEGIN_STMT
  1217. <bb 10> [local count: 1073741824]:
  1218. goto <bb 4>; [100.00%]
  1219. <bb 5> [local count: 107374]:
  1220. # DEBUG BEGIN_STMT
  1221. # DEBUG BEGIN_STMT
  1222. if (xTask_6(D) == 0B)
  1223. goto <bb 6>; [30.00%]
  1224. else
  1225. goto <bb 7>; [70.00%]
  1226. <bb 6> [local count: 32212]:
  1227. iftmp.163_8 ={v} pxCurrentTCB;
  1228. <bb 7> [local count: 107374]:
  1229. # iftmp.163_3 = PHI <iftmp.163_8(6), xTask_6(D)(5)>
  1230. # DEBUG pxTCB => iftmp.163_3
  1231. # DEBUG BEGIN_STMT
  1232. vPortEnterCritical ();
  1233. # DEBUG BEGIN_STMT
  1234. _1 ={v} iftmp.163_3->ucNotifyState[0];
  1235. if (_1 == 2)
  1236. goto <bb 8>; [34.00%]
  1237. else
  1238. goto <bb 9>; [66.00%]
  1239. <bb 8> [local count: 36507]:
  1240. # DEBUG BEGIN_STMT
  1241. iftmp.163_3->ucNotifyState[0] ={v} 0;
  1242. # DEBUG BEGIN_STMT
  1243. # DEBUG xReturn => 1
  1244. <bb 9> [local count: 107374]:
  1245. # xReturn_2 = PHI <1(8), 0(7)>
  1246. # DEBUG xReturn => xReturn_2
  1247. # DEBUG BEGIN_STMT
  1248. vPortExitCritical ();
  1249. # DEBUG BEGIN_STMT
  1250. return xReturn_2;
  1251. }
  1252. vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken)
  1253. {
  1254. uint32_t ulNewBASEPRI;
  1255. uint32_t ulOriginalBASEPRI;
  1256. uint32_t ulNewBASEPRI;
  1257. uint32_t ulNewBASEPRI;
  1258. uint32_t ulNewBASEPRI;
  1259. struct ListItem_t * const pxIndex;
  1260. struct ListItem_t * const pxIndex;
  1261. struct List_t * const pxList;
  1262. uint8_t ucOriginalNotifyState;
  1263. long unsigned int _1;
  1264. long unsigned int _2;
  1265. struct xLIST * _3;
  1266. long unsigned int uxSchedulerSuspended.160_4;
  1267. struct xLIST_ITEM * _5;
  1268. struct xLIST_ITEM * _6;
  1269. struct xLIST_ITEM * _7;
  1270. struct ListItem_t * _8;
  1271. struct ListItem_t * _9;
  1272. long unsigned int _10;
  1273. long unsigned int _11;
  1274. long unsigned int _12;
  1275. long unsigned int uxTopReadyPriority.161_13;
  1276. struct xLIST_ITEM * _14;
  1277. struct xLIST_ITEM * _15;
  1278. struct List_t * _16;
  1279. long unsigned int _17;
  1280. long unsigned int _18;
  1281. struct xLIST_ITEM * _19;
  1282. struct xLIST_ITEM * _20;
  1283. struct ListItem_t * _21;
  1284. long unsigned int _22;
  1285. long unsigned int _23;
  1286. long unsigned int _24;
  1287. struct TCB_t * pxCurrentTCB.162_25;
  1288. long unsigned int _26;
  1289. <bb 2> [local count: 228942]:
  1290. # DEBUG BEGIN_STMT
  1291. # DEBUG BEGIN_STMT
  1292. # DEBUG BEGIN_STMT
  1293. # DEBUG BEGIN_STMT
  1294. if (xTaskToNotify_32(D) == 0B)
  1295. goto <bb 3>; [30.00%]
  1296. else
  1297. goto <bb 5>; [70.00%]
  1298. <bb 3> [local count: 68683]:
  1299. # DEBUG BEGIN_STMT
  1300. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1301. # DEBUG BEGIN_STMT
  1302. # DEBUG BEGIN_STMT
  1303. __asm__ __volatile__(" mov %0, %1
  1304. msr basepri, %0
  1305. isb
  1306. dsb
  1307. " : "=r" ulNewBASEPRI_62 : "i" 16 : "memory");
  1308. # DEBUG ulNewBASEPRI => ulNewBASEPRI_62
  1309. <bb 4> [local count: 686828460]:
  1310. # DEBUG ulNewBASEPRI => NULL
  1311. # DEBUG BEGIN_STMT
  1312. # DEBUG BEGIN_STMT
  1313. # DEBUG BEGIN_STMT
  1314. <bb 24> [local count: 686828460]:
  1315. goto <bb 4>; [100.00%]
  1316. <bb 5> [local count: 160260]:
  1317. # DEBUG BEGIN_STMT
  1318. # DEBUG BEGIN_STMT
  1319. if (uxIndexToNotify_33(D) != 0)
  1320. goto <bb 6>; [67.00%]
  1321. else
  1322. goto <bb 8>; [33.00%]
  1323. <bb 6> [local count: 107374]:
  1324. # DEBUG BEGIN_STMT
  1325. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1326. # DEBUG BEGIN_STMT
  1327. # DEBUG BEGIN_STMT
  1328. __asm__ __volatile__(" mov %0, %1
  1329. msr basepri, %0
  1330. isb
  1331. dsb
  1332. " : "=r" ulNewBASEPRI_63 : "i" 16 : "memory");
  1333. # DEBUG ulNewBASEPRI => ulNewBASEPRI_63
  1334. <bb 7> [local count: 1073741824]:
  1335. # DEBUG ulNewBASEPRI => NULL
  1336. # DEBUG BEGIN_STMT
  1337. # DEBUG BEGIN_STMT
  1338. # DEBUG BEGIN_STMT
  1339. <bb 25> [local count: 1073741824]:
  1340. goto <bb 7>; [100.00%]
  1341. <bb 8> [local count: 52886]:
  1342. # DEBUG BEGIN_STMT
  1343. # DEBUG BEGIN_STMT
  1344. vPortValidateInterruptPriority ();
  1345. # DEBUG BEGIN_STMT
  1346. # DEBUG pxTCB => xTaskToNotify_32(D)
  1347. # DEBUG BEGIN_STMT
  1348. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1349. # DEBUG BEGIN_STMT
  1350. # DEBUG BEGIN_STMT
  1351. __asm__ __volatile__(" mrs %0, basepri
  1352. mov %1, %2
  1353. msr basepri, %1
  1354. isb
  1355. dsb
  1356. " : "=r" ulOriginalBASEPRI_64, "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  1357. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  1358. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_64
  1359. # DEBUG BEGIN_STMT
  1360. # DEBUG ulNewBASEPRI => NULL
  1361. # DEBUG ulOriginalBASEPRI => NULL
  1362. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_64
  1363. # DEBUG BEGIN_STMT
  1364. ucOriginalNotifyState_36 ={v} MEM[(struct TCB_t *)xTaskToNotify_32(D)].ucNotifyState[0];
  1365. # DEBUG ucOriginalNotifyState => ucOriginalNotifyState_36
  1366. # DEBUG BEGIN_STMT
  1367. MEM[(struct TCB_t *)xTaskToNotify_32(D)].ucNotifyState[0] ={v} 2;
  1368. # DEBUG BEGIN_STMT
  1369. _1 ={v} MEM[(struct TCB_t *)xTaskToNotify_32(D)].ulNotifiedValue[0];
  1370. _2 = _1 + 1;
  1371. MEM[(struct TCB_t *)xTaskToNotify_32(D)].ulNotifiedValue[0] ={v} _2;
  1372. # DEBUG BEGIN_STMT
  1373. # DEBUG BEGIN_STMT
  1374. if (ucOriginalNotifyState_36 == 1)
  1375. goto <bb 9>; [34.00%]
  1376. else
  1377. goto <bb 23>; [66.00%]
  1378. <bb 9> [local count: 17981]:
  1379. # DEBUG BEGIN_STMT
  1380. _3 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pvContainer;
  1381. if (_3 != 0B)
  1382. goto <bb 10>; [70.00%]
  1383. else
  1384. goto <bb 12>; [30.00%]
  1385. <bb 10> [local count: 12587]:
  1386. # DEBUG BEGIN_STMT
  1387. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1388. # DEBUG BEGIN_STMT
  1389. # DEBUG BEGIN_STMT
  1390. __asm__ __volatile__(" mov %0, %1
  1391. msr basepri, %0
  1392. isb
  1393. dsb
  1394. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  1395. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  1396. <bb 11> [local count: 125868183]:
  1397. # DEBUG ulNewBASEPRI => NULL
  1398. # DEBUG BEGIN_STMT
  1399. # DEBUG BEGIN_STMT
  1400. # DEBUG BEGIN_STMT
  1401. <bb 26> [local count: 125868183]:
  1402. goto <bb 11>; [100.00%]
  1403. <bb 12> [local count: 5394]:
  1404. # DEBUG BEGIN_STMT
  1405. # DEBUG BEGIN_STMT
  1406. uxSchedulerSuspended.160_4 ={v} uxSchedulerSuspended;
  1407. if (uxSchedulerSuspended.160_4 == 0)
  1408. goto <bb 13>; [50.00%]
  1409. else
  1410. goto <bb 18>; [50.00%]
  1411. <bb 13> [local count: 2697]:
  1412. # DEBUG BEGIN_STMT
  1413. pxList_46 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pvContainer;
  1414. # DEBUG pxList => pxList_46
  1415. # DEBUG BEGIN_STMT
  1416. _5 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxNext;
  1417. _6 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxPrevious;
  1418. _5->pxPrevious = _6;
  1419. # DEBUG BEGIN_STMT
  1420. _7 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxPrevious;
  1421. _7->pxNext = _5;
  1422. # DEBUG BEGIN_STMT
  1423. _8 = pxList_46->pxIndex;
  1424. _9 = &MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem;
  1425. if (_8 == _9)
  1426. goto <bb 14>; [30.00%]
  1427. else
  1428. goto <bb 15>; [70.00%]
  1429. <bb 14> [local count: 809]:
  1430. # DEBUG BEGIN_STMT
  1431. pxList_46->pxIndex = _7;
  1432. <bb 15> [local count: 2697]:
  1433. # DEBUG BEGIN_STMT
  1434. # DEBUG BEGIN_STMT
  1435. _10 ={v} pxList_46->uxNumberOfItems;
  1436. _11 = _10 + 4294967295;
  1437. pxList_46->uxNumberOfItems ={v} _11;
  1438. # DEBUG BEGIN_STMT
  1439. # DEBUG BEGIN_STMT
  1440. # DEBUG BEGIN_STMT
  1441. _12 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].uxPriority;
  1442. uxTopReadyPriority.161_13 ={v} uxTopReadyPriority;
  1443. if (_12 > uxTopReadyPriority.161_13)
  1444. goto <bb 16>; [50.00%]
  1445. else
  1446. goto <bb 17>; [50.00%]
  1447. <bb 16> [local count: 1349]:
  1448. # DEBUG BEGIN_STMT
  1449. uxTopReadyPriority ={v} _12;
  1450. <bb 17> [local count: 2697]:
  1451. # DEBUG BEGIN_STMT
  1452. # DEBUG BEGIN_STMT
  1453. pxIndex_52 = pxReadyTasksLists[_12].pxIndex;
  1454. # DEBUG pxIndex => pxIndex_52
  1455. # DEBUG BEGIN_STMT
  1456. # DEBUG BEGIN_STMT
  1457. # DEBUG BEGIN_STMT
  1458. MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxNext = pxIndex_52;
  1459. # DEBUG BEGIN_STMT
  1460. _14 = pxIndex_52->pxPrevious;
  1461. MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxPrevious = _14;
  1462. # DEBUG BEGIN_STMT
  1463. _15 = pxIndex_52->pxPrevious;
  1464. _15->pxNext = _9;
  1465. # DEBUG BEGIN_STMT
  1466. pxIndex_52->pxPrevious = _9;
  1467. # DEBUG BEGIN_STMT
  1468. _16 = &pxReadyTasksLists[_12];
  1469. MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pvContainer = _16;
  1470. # DEBUG BEGIN_STMT
  1471. _17 ={v} pxReadyTasksLists[_12].uxNumberOfItems;
  1472. _18 = _17 + 1;
  1473. pxReadyTasksLists[_12].uxNumberOfItems ={v} _18;
  1474. # DEBUG BEGIN_STMT
  1475. # DEBUG BEGIN_STMT
  1476. goto <bb 19>; [100.00%]
  1477. <bb 18> [local count: 2697]:
  1478. # DEBUG BEGIN_STMT
  1479. pxIndex_39 = xPendingReadyList.pxIndex;
  1480. # DEBUG pxIndex => pxIndex_39
  1481. # DEBUG BEGIN_STMT
  1482. # DEBUG BEGIN_STMT
  1483. # DEBUG BEGIN_STMT
  1484. MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pxNext = pxIndex_39;
  1485. # DEBUG BEGIN_STMT
  1486. _19 = pxIndex_39->pxPrevious;
  1487. MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pxPrevious = _19;
  1488. # DEBUG BEGIN_STMT
  1489. _20 = pxIndex_39->pxPrevious;
  1490. _21 = &MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem;
  1491. _20->pxNext = _21;
  1492. # DEBUG BEGIN_STMT
  1493. pxIndex_39->pxPrevious = _21;
  1494. # DEBUG BEGIN_STMT
  1495. MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pvContainer = &xPendingReadyList;
  1496. # DEBUG BEGIN_STMT
  1497. _22 ={v} xPendingReadyList.uxNumberOfItems;
  1498. _23 = _22 + 1;
  1499. xPendingReadyList.uxNumberOfItems ={v} _23;
  1500. <bb 19> [local count: 5394]:
  1501. # DEBUG BEGIN_STMT
  1502. # DEBUG BEGIN_STMT
  1503. _24 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].uxPriority;
  1504. pxCurrentTCB.162_25 ={v} pxCurrentTCB;
  1505. _26 = pxCurrentTCB.162_25->uxPriority;
  1506. if (_24 > _26)
  1507. goto <bb 20>; [50.00%]
  1508. else
  1509. goto <bb 23>; [50.00%]
  1510. <bb 20> [local count: 2697]:
  1511. # DEBUG BEGIN_STMT
  1512. if (pxHigherPriorityTaskWoken_59(D) != 0B)
  1513. goto <bb 21>; [70.00%]
  1514. else
  1515. goto <bb 22>; [30.00%]
  1516. <bb 21> [local count: 1888]:
  1517. # DEBUG BEGIN_STMT
  1518. *pxHigherPriorityTaskWoken_59(D) = 1;
  1519. <bb 22> [local count: 2697]:
  1520. # DEBUG BEGIN_STMT
  1521. xYieldPending ={v} 1;
  1522. <bb 23> [local count: 40299]:
  1523. # DEBUG BEGIN_STMT
  1524. # DEBUG BEGIN_STMT
  1525. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_64
  1526. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1527. # DEBUG BEGIN_STMT
  1528. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_64 : "memory");
  1529. # DEBUG ulNewMaskValue => NULL
  1530. return;
  1531. }
  1532. xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken)
  1533. {
  1534. uint32_t ulNewBASEPRI;
  1535. uint32_t ulNewBASEPRI;
  1536. uint32_t ulOriginalBASEPRI;
  1537. uint32_t ulNewBASEPRI;
  1538. uint32_t ulNewBASEPRI;
  1539. uint32_t ulNewBASEPRI;
  1540. struct ListItem_t * const pxIndex;
  1541. struct ListItem_t * const pxIndex;
  1542. struct List_t * const pxList;
  1543. BaseType_t xReturn;
  1544. uint8_t ucOriginalNotifyState;
  1545. long unsigned int _1;
  1546. long unsigned int _2;
  1547. long unsigned int _3;
  1548. long unsigned int _4;
  1549. long unsigned int _5;
  1550. long unsigned int xTickCount.156_6;
  1551. struct xLIST * _7;
  1552. long unsigned int uxSchedulerSuspended.157_8;
  1553. struct xLIST_ITEM * _9;
  1554. struct xLIST_ITEM * _10;
  1555. struct xLIST_ITEM * _11;
  1556. struct ListItem_t * _12;
  1557. struct ListItem_t * _13;
  1558. long unsigned int _14;
  1559. long unsigned int _15;
  1560. long unsigned int _16;
  1561. long unsigned int uxTopReadyPriority.158_17;
  1562. struct xLIST_ITEM * _18;
  1563. struct xLIST_ITEM * _19;
  1564. struct List_t * _20;
  1565. long unsigned int _21;
  1566. long unsigned int _22;
  1567. struct xLIST_ITEM * _23;
  1568. struct xLIST_ITEM * _24;
  1569. struct ListItem_t * _25;
  1570. long unsigned int _26;
  1571. long unsigned int _27;
  1572. long unsigned int _28;
  1573. struct TCB_t * pxCurrentTCB.159_29;
  1574. long unsigned int _30;
  1575. <bb 2> [local count: 228942]:
  1576. # DEBUG BEGIN_STMT
  1577. # DEBUG BEGIN_STMT
  1578. # DEBUG BEGIN_STMT
  1579. # DEBUG xReturn => 1
  1580. # DEBUG BEGIN_STMT
  1581. # DEBUG BEGIN_STMT
  1582. if (xTaskToNotify_39(D) == 0B)
  1583. goto <bb 3>; [30.00%]
  1584. else
  1585. goto <bb 5>; [70.00%]
  1586. <bb 3> [local count: 68683]:
  1587. # DEBUG BEGIN_STMT
  1588. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1589. # DEBUG BEGIN_STMT
  1590. # DEBUG BEGIN_STMT
  1591. __asm__ __volatile__(" mov %0, %1
  1592. msr basepri, %0
  1593. isb
  1594. dsb
  1595. " : "=r" ulNewBASEPRI_76 : "i" 16 : "memory");
  1596. # DEBUG ulNewBASEPRI => ulNewBASEPRI_76
  1597. <bb 4> [local count: 686828460]:
  1598. # DEBUG ulNewBASEPRI => NULL
  1599. # DEBUG BEGIN_STMT
  1600. # DEBUG BEGIN_STMT
  1601. # DEBUG BEGIN_STMT
  1602. <bb 35> [local count: 686828460]:
  1603. goto <bb 4>; [100.00%]
  1604. <bb 5> [local count: 160260]:
  1605. # DEBUG BEGIN_STMT
  1606. # DEBUG BEGIN_STMT
  1607. if (uxIndexToNotify_40(D) != 0)
  1608. goto <bb 6>; [67.00%]
  1609. else
  1610. goto <bb 8>; [33.00%]
  1611. <bb 6> [local count: 107374]:
  1612. # DEBUG BEGIN_STMT
  1613. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1614. # DEBUG BEGIN_STMT
  1615. # DEBUG BEGIN_STMT
  1616. __asm__ __volatile__(" mov %0, %1
  1617. msr basepri, %0
  1618. isb
  1619. dsb
  1620. " : "=r" ulNewBASEPRI_77 : "i" 16 : "memory");
  1621. # DEBUG ulNewBASEPRI => ulNewBASEPRI_77
  1622. <bb 7> [local count: 1073741824]:
  1623. # DEBUG ulNewBASEPRI => NULL
  1624. # DEBUG BEGIN_STMT
  1625. # DEBUG BEGIN_STMT
  1626. # DEBUG BEGIN_STMT
  1627. <bb 36> [local count: 1073741824]:
  1628. goto <bb 7>; [100.00%]
  1629. <bb 8> [local count: 52886]:
  1630. # DEBUG BEGIN_STMT
  1631. # DEBUG BEGIN_STMT
  1632. vPortValidateInterruptPriority ();
  1633. # DEBUG BEGIN_STMT
  1634. # DEBUG pxTCB => xTaskToNotify_39(D)
  1635. # DEBUG BEGIN_STMT
  1636. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1637. # DEBUG BEGIN_STMT
  1638. # DEBUG BEGIN_STMT
  1639. __asm__ __volatile__(" mrs %0, basepri
  1640. mov %1, %2
  1641. msr basepri, %1
  1642. isb
  1643. dsb
  1644. " : "=r" ulOriginalBASEPRI_78, "=r" ulNewBASEPRI_79 : "i" 16 : "memory");
  1645. # DEBUG ulNewBASEPRI => ulNewBASEPRI_79
  1646. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_78
  1647. # DEBUG BEGIN_STMT
  1648. # DEBUG ulNewBASEPRI => NULL
  1649. # DEBUG ulOriginalBASEPRI => NULL
  1650. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_78
  1651. # DEBUG BEGIN_STMT
  1652. if (pulPreviousNotificationValue_43(D) != 0B)
  1653. goto <bb 9>; [70.00%]
  1654. else
  1655. goto <bb 10>; [30.00%]
  1656. <bb 9> [local count: 37020]:
  1657. # DEBUG BEGIN_STMT
  1658. _1 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0];
  1659. *pulPreviousNotificationValue_43(D) = _1;
  1660. <bb 10> [local count: 52886]:
  1661. # DEBUG BEGIN_STMT
  1662. ucOriginalNotifyState_45 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ucNotifyState[0];
  1663. # DEBUG ucOriginalNotifyState => ucOriginalNotifyState_45
  1664. # DEBUG BEGIN_STMT
  1665. MEM[(struct TCB_t *)xTaskToNotify_39(D)].ucNotifyState[0] ={v} 2;
  1666. # DEBUG BEGIN_STMT
  1667. switch (eAction_47(D)) <default: <L16> [16.67%], case 0: <L39> [16.67%], case 1: <L8> [16.67%], case 2: <L9> [16.67%], case 3: <L10> [16.67%], case 4: <L11> [16.67%]>
  1668. <bb 11> [local count: 8816]:
  1669. <L8>:
  1670. # DEBUG BEGIN_STMT
  1671. _2 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0];
  1672. _3 = _2 | ulValue_48(D);
  1673. MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} _3;
  1674. # DEBUG BEGIN_STMT
  1675. goto <bb 19>; [100.00%]
  1676. <bb 12> [local count: 8816]:
  1677. <L9>:
  1678. # DEBUG BEGIN_STMT
  1679. _4 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0];
  1680. _5 = _4 + 1;
  1681. MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} _5;
  1682. # DEBUG BEGIN_STMT
  1683. goto <bb 19>; [100.00%]
  1684. <bb 13> [local count: 8816]:
  1685. <L10>:
  1686. # DEBUG BEGIN_STMT
  1687. MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} ulValue_48(D);
  1688. # DEBUG BEGIN_STMT
  1689. goto <bb 19>; [100.00%]
  1690. <bb 14> [local count: 8816]:
  1691. <L11>:
  1692. # DEBUG BEGIN_STMT
  1693. if (ucOriginalNotifyState_45 != 2)
  1694. goto <bb 15>; [66.00%]
  1695. else
  1696. goto <bb 19>; [34.00%]
  1697. <bb 15> [local count: 5819]:
  1698. # DEBUG BEGIN_STMT
  1699. MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} ulValue_48(D);
  1700. goto <bb 19>; [100.00%]
  1701. <bb 16> [local count: 8816]:
  1702. <L16>:
  1703. # DEBUG BEGIN_STMT
  1704. xTickCount.156_6 ={v} xTickCount;
  1705. if (xTickCount.156_6 != 0)
  1706. goto <bb 17>; [50.00%]
  1707. else
  1708. goto <bb 19>; [50.00%]
  1709. <bb 17> [local count: 4408]:
  1710. # DEBUG BEGIN_STMT
  1711. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1712. # DEBUG BEGIN_STMT
  1713. # DEBUG BEGIN_STMT
  1714. __asm__ __volatile__(" mov %0, %1
  1715. msr basepri, %0
  1716. isb
  1717. dsb
  1718. " : "=r" ulNewBASEPRI_80 : "i" 16 : "memory");
  1719. # DEBUG ulNewBASEPRI => ulNewBASEPRI_80
  1720. <bb 18> [local count: 44080307]:
  1721. # DEBUG ulNewBASEPRI => NULL
  1722. # DEBUG BEGIN_STMT
  1723. # DEBUG BEGIN_STMT
  1724. # DEBUG BEGIN_STMT
  1725. <bb 37> [local count: 44080307]:
  1726. goto <bb 18>; [100.00%]
  1727. <bb 19> [local count: 48488]:
  1728. # xReturn_31 = PHI <1(11), 1(12), 1(13), 0(14), 1(10), 1(16), 1(15)>
  1729. <L39>:
  1730. # DEBUG xReturn => xReturn_31
  1731. # DEBUG BEGIN_STMT
  1732. # DEBUG BEGIN_STMT
  1733. if (ucOriginalNotifyState_45 == 1)
  1734. goto <bb 20>; [34.00%]
  1735. else
  1736. goto <bb 34>; [66.00%]
  1737. <bb 20> [local count: 16486]:
  1738. # DEBUG BEGIN_STMT
  1739. _7 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pvContainer;
  1740. if (_7 != 0B)
  1741. goto <bb 21>; [70.00%]
  1742. else
  1743. goto <bb 23>; [30.00%]
  1744. <bb 21> [local count: 11540]:
  1745. # DEBUG BEGIN_STMT
  1746. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1747. # DEBUG BEGIN_STMT
  1748. # DEBUG BEGIN_STMT
  1749. __asm__ __volatile__(" mov %0, %1
  1750. msr basepri, %0
  1751. isb
  1752. dsb
  1753. " : "=r" ulNewBASEPRI_81 : "i" 16 : "memory");
  1754. # DEBUG ulNewBASEPRI => ulNewBASEPRI_81
  1755. <bb 22> [local count: 115402244]:
  1756. # DEBUG ulNewBASEPRI => NULL
  1757. # DEBUG BEGIN_STMT
  1758. # DEBUG BEGIN_STMT
  1759. # DEBUG BEGIN_STMT
  1760. <bb 38> [local count: 115402244]:
  1761. goto <bb 22>; [100.00%]
  1762. <bb 23> [local count: 4946]:
  1763. # DEBUG BEGIN_STMT
  1764. # DEBUG BEGIN_STMT
  1765. uxSchedulerSuspended.157_8 ={v} uxSchedulerSuspended;
  1766. if (uxSchedulerSuspended.157_8 == 0)
  1767. goto <bb 24>; [50.00%]
  1768. else
  1769. goto <bb 29>; [50.00%]
  1770. <bb 24> [local count: 2473]:
  1771. # DEBUG BEGIN_STMT
  1772. pxList_60 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pvContainer;
  1773. # DEBUG pxList => pxList_60
  1774. # DEBUG BEGIN_STMT
  1775. _9 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxNext;
  1776. _10 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxPrevious;
  1777. _9->pxPrevious = _10;
  1778. # DEBUG BEGIN_STMT
  1779. _11 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxPrevious;
  1780. _11->pxNext = _9;
  1781. # DEBUG BEGIN_STMT
  1782. _12 = pxList_60->pxIndex;
  1783. _13 = &MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem;
  1784. if (_12 == _13)
  1785. goto <bb 25>; [30.00%]
  1786. else
  1787. goto <bb 26>; [70.00%]
  1788. <bb 25> [local count: 742]:
  1789. # DEBUG BEGIN_STMT
  1790. pxList_60->pxIndex = _11;
  1791. <bb 26> [local count: 2473]:
  1792. # DEBUG BEGIN_STMT
  1793. # DEBUG BEGIN_STMT
  1794. _14 ={v} pxList_60->uxNumberOfItems;
  1795. _15 = _14 + 4294967295;
  1796. pxList_60->uxNumberOfItems ={v} _15;
  1797. # DEBUG BEGIN_STMT
  1798. # DEBUG BEGIN_STMT
  1799. # DEBUG BEGIN_STMT
  1800. _16 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].uxPriority;
  1801. uxTopReadyPriority.158_17 ={v} uxTopReadyPriority;
  1802. if (_16 > uxTopReadyPriority.158_17)
  1803. goto <bb 27>; [50.00%]
  1804. else
  1805. goto <bb 28>; [50.00%]
  1806. <bb 27> [local count: 1236]:
  1807. # DEBUG BEGIN_STMT
  1808. uxTopReadyPriority ={v} _16;
  1809. <bb 28> [local count: 2473]:
  1810. # DEBUG BEGIN_STMT
  1811. # DEBUG BEGIN_STMT
  1812. pxIndex_66 = pxReadyTasksLists[_16].pxIndex;
  1813. # DEBUG pxIndex => pxIndex_66
  1814. # DEBUG BEGIN_STMT
  1815. # DEBUG BEGIN_STMT
  1816. # DEBUG BEGIN_STMT
  1817. MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxNext = pxIndex_66;
  1818. # DEBUG BEGIN_STMT
  1819. _18 = pxIndex_66->pxPrevious;
  1820. MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxPrevious = _18;
  1821. # DEBUG BEGIN_STMT
  1822. _19 = pxIndex_66->pxPrevious;
  1823. _19->pxNext = _13;
  1824. # DEBUG BEGIN_STMT
  1825. pxIndex_66->pxPrevious = _13;
  1826. # DEBUG BEGIN_STMT
  1827. _20 = &pxReadyTasksLists[_16];
  1828. MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pvContainer = _20;
  1829. # DEBUG BEGIN_STMT
  1830. _21 ={v} pxReadyTasksLists[_16].uxNumberOfItems;
  1831. _22 = _21 + 1;
  1832. pxReadyTasksLists[_16].uxNumberOfItems ={v} _22;
  1833. # DEBUG BEGIN_STMT
  1834. # DEBUG BEGIN_STMT
  1835. goto <bb 30>; [100.00%]
  1836. <bb 29> [local count: 2473]:
  1837. # DEBUG BEGIN_STMT
  1838. pxIndex_53 = xPendingReadyList.pxIndex;
  1839. # DEBUG pxIndex => pxIndex_53
  1840. # DEBUG BEGIN_STMT
  1841. # DEBUG BEGIN_STMT
  1842. # DEBUG BEGIN_STMT
  1843. MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pxNext = pxIndex_53;
  1844. # DEBUG BEGIN_STMT
  1845. _23 = pxIndex_53->pxPrevious;
  1846. MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pxPrevious = _23;
  1847. # DEBUG BEGIN_STMT
  1848. _24 = pxIndex_53->pxPrevious;
  1849. _25 = &MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem;
  1850. _24->pxNext = _25;
  1851. # DEBUG BEGIN_STMT
  1852. pxIndex_53->pxPrevious = _25;
  1853. # DEBUG BEGIN_STMT
  1854. MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pvContainer = &xPendingReadyList;
  1855. # DEBUG BEGIN_STMT
  1856. _26 ={v} xPendingReadyList.uxNumberOfItems;
  1857. _27 = _26 + 1;
  1858. xPendingReadyList.uxNumberOfItems ={v} _27;
  1859. <bb 30> [local count: 4946]:
  1860. # DEBUG BEGIN_STMT
  1861. # DEBUG BEGIN_STMT
  1862. _28 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].uxPriority;
  1863. pxCurrentTCB.159_29 ={v} pxCurrentTCB;
  1864. _30 = pxCurrentTCB.159_29->uxPriority;
  1865. if (_28 > _30)
  1866. goto <bb 31>; [50.00%]
  1867. else
  1868. goto <bb 34>; [50.00%]
  1869. <bb 31> [local count: 2473]:
  1870. # DEBUG BEGIN_STMT
  1871. if (pxHigherPriorityTaskWoken_73(D) != 0B)
  1872. goto <bb 32>; [70.00%]
  1873. else
  1874. goto <bb 33>; [30.00%]
  1875. <bb 32> [local count: 1731]:
  1876. # DEBUG BEGIN_STMT
  1877. *pxHigherPriorityTaskWoken_73(D) = 1;
  1878. <bb 33> [local count: 2473]:
  1879. # DEBUG BEGIN_STMT
  1880. xYieldPending ={v} 1;
  1881. <bb 34> [local count: 36948]:
  1882. # DEBUG BEGIN_STMT
  1883. # DEBUG BEGIN_STMT
  1884. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_78
  1885. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1886. # DEBUG BEGIN_STMT
  1887. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_78 : "memory");
  1888. # DEBUG ulNewMaskValue => NULL
  1889. # DEBUG BEGIN_STMT
  1890. return xReturn_31;
  1891. }
  1892. xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue)
  1893. {
  1894. uint32_t ulNewBASEPRI;
  1895. uint32_t ulNewBASEPRI;
  1896. uint32_t ulNewBASEPRI;
  1897. uint32_t ulNewBASEPRI;
  1898. struct ListItem_t * const pxIndex;
  1899. struct List_t * const pxList;
  1900. uint8_t ucOriginalNotifyState;
  1901. BaseType_t xReturn;
  1902. long unsigned int _1;
  1903. long unsigned int _2;
  1904. long unsigned int _3;
  1905. long unsigned int _4;
  1906. long unsigned int _5;
  1907. long unsigned int xTickCount.153_6;
  1908. struct xLIST_ITEM * _7;
  1909. struct xLIST_ITEM * _8;
  1910. struct xLIST_ITEM * _9;
  1911. struct ListItem_t * _10;
  1912. struct ListItem_t * _11;
  1913. long unsigned int _12;
  1914. long unsigned int _13;
  1915. long unsigned int _14;
  1916. long unsigned int uxTopReadyPriority.154_15;
  1917. struct xLIST_ITEM * _16;
  1918. struct xLIST_ITEM * _17;
  1919. struct List_t * _18;
  1920. long unsigned int _19;
  1921. long unsigned int _20;
  1922. struct xLIST * _21;
  1923. struct TCB_t * pxCurrentTCB.155_22;
  1924. long unsigned int _23;
  1925. <bb 2> [local count: 214748]:
  1926. # DEBUG BEGIN_STMT
  1927. # DEBUG BEGIN_STMT
  1928. # DEBUG xReturn => 1
  1929. # DEBUG BEGIN_STMT
  1930. # DEBUG BEGIN_STMT
  1931. if (uxIndexToNotify_30(D) != 0)
  1932. goto <bb 3>; [50.00%]
  1933. else
  1934. goto <bb 5>; [50.00%]
  1935. <bb 3> [local count: 107374]:
  1936. # DEBUG BEGIN_STMT
  1937. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1938. # DEBUG BEGIN_STMT
  1939. # DEBUG BEGIN_STMT
  1940. __asm__ __volatile__(" mov %0, %1
  1941. msr basepri, %0
  1942. isb
  1943. dsb
  1944. " : "=r" ulNewBASEPRI_61 : "i" 16 : "memory");
  1945. # DEBUG ulNewBASEPRI => ulNewBASEPRI_61
  1946. <bb 4> [local count: 1073741824]:
  1947. # DEBUG ulNewBASEPRI => NULL
  1948. # DEBUG BEGIN_STMT
  1949. # DEBUG BEGIN_STMT
  1950. # DEBUG BEGIN_STMT
  1951. <bb 30> [local count: 1073741824]:
  1952. goto <bb 4>; [100.00%]
  1953. <bb 5> [local count: 107374]:
  1954. # DEBUG BEGIN_STMT
  1955. # DEBUG BEGIN_STMT
  1956. if (xTaskToNotify_31(D) == 0B)
  1957. goto <bb 6>; [46.53%]
  1958. else
  1959. goto <bb 8>; [53.47%]
  1960. <bb 6> [local count: 49961]:
  1961. # DEBUG BEGIN_STMT
  1962. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1963. # DEBUG BEGIN_STMT
  1964. # DEBUG BEGIN_STMT
  1965. __asm__ __volatile__(" mov %0, %1
  1966. msr basepri, %0
  1967. isb
  1968. dsb
  1969. " : "=r" ulNewBASEPRI_62 : "i" 16 : "memory");
  1970. # DEBUG ulNewBASEPRI => ulNewBASEPRI_62
  1971. <bb 7> [local count: 499612071]:
  1972. # DEBUG ulNewBASEPRI => NULL
  1973. # DEBUG BEGIN_STMT
  1974. # DEBUG BEGIN_STMT
  1975. # DEBUG BEGIN_STMT
  1976. <bb 31> [local count: 499612071]:
  1977. goto <bb 7>; [100.00%]
  1978. <bb 8> [local count: 57413]:
  1979. # DEBUG BEGIN_STMT
  1980. # DEBUG BEGIN_STMT
  1981. # DEBUG pxTCB => xTaskToNotify_31(D)
  1982. # DEBUG BEGIN_STMT
  1983. vPortEnterCritical ();
  1984. # DEBUG BEGIN_STMT
  1985. if (pulPreviousNotificationValue_34(D) != 0B)
  1986. goto <bb 9>; [70.00%]
  1987. else
  1988. goto <bb 10>; [30.00%]
  1989. <bb 9> [local count: 40189]:
  1990. # DEBUG BEGIN_STMT
  1991. _1 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0];
  1992. *pulPreviousNotificationValue_34(D) = _1;
  1993. <bb 10> [local count: 57413]:
  1994. # DEBUG BEGIN_STMT
  1995. ucOriginalNotifyState_36 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ucNotifyState[0];
  1996. # DEBUG ucOriginalNotifyState => ucOriginalNotifyState_36
  1997. # DEBUG BEGIN_STMT
  1998. MEM[(struct TCB_t *)xTaskToNotify_31(D)].ucNotifyState[0] ={v} 2;
  1999. # DEBUG BEGIN_STMT
  2000. switch (eAction_38(D)) <default: <L16> [16.67%], case 0: <L35> [16.67%], case 1: <L8> [16.67%], case 2: <L9> [16.67%], case 3: <L10> [16.67%], case 4: <L11> [16.67%]>
  2001. <bb 11> [local count: 9571]:
  2002. <L8>:
  2003. # DEBUG BEGIN_STMT
  2004. _2 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0];
  2005. _3 = _2 | ulValue_39(D);
  2006. MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} _3;
  2007. # DEBUG BEGIN_STMT
  2008. goto <bb 19>; [100.00%]
  2009. <bb 12> [local count: 9571]:
  2010. <L9>:
  2011. # DEBUG BEGIN_STMT
  2012. _4 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0];
  2013. _5 = _4 + 1;
  2014. MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} _5;
  2015. # DEBUG BEGIN_STMT
  2016. goto <bb 19>; [100.00%]
  2017. <bb 13> [local count: 9571]:
  2018. <L10>:
  2019. # DEBUG BEGIN_STMT
  2020. MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} ulValue_39(D);
  2021. # DEBUG BEGIN_STMT
  2022. goto <bb 19>; [100.00%]
  2023. <bb 14> [local count: 9571]:
  2024. <L11>:
  2025. # DEBUG BEGIN_STMT
  2026. if (ucOriginalNotifyState_36 != 2)
  2027. goto <bb 15>; [66.00%]
  2028. else
  2029. goto <bb 19>; [34.00%]
  2030. <bb 15> [local count: 6317]:
  2031. # DEBUG BEGIN_STMT
  2032. MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} ulValue_39(D);
  2033. goto <bb 19>; [100.00%]
  2034. <bb 16> [local count: 9571]:
  2035. <L16>:
  2036. # DEBUG BEGIN_STMT
  2037. xTickCount.153_6 ={v} xTickCount;
  2038. if (xTickCount.153_6 != 0)
  2039. goto <bb 17>; [50.00%]
  2040. else
  2041. goto <bb 19>; [50.00%]
  2042. <bb 17> [local count: 4785]:
  2043. # DEBUG BEGIN_STMT
  2044. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2045. # DEBUG BEGIN_STMT
  2046. # DEBUG BEGIN_STMT
  2047. __asm__ __volatile__(" mov %0, %1
  2048. msr basepri, %0
  2049. isb
  2050. dsb
  2051. " : "=r" ulNewBASEPRI_63 : "i" 16 : "memory");
  2052. # DEBUG ulNewBASEPRI => ulNewBASEPRI_63
  2053. <bb 18> [local count: 47853715]:
  2054. # DEBUG ulNewBASEPRI => NULL
  2055. # DEBUG BEGIN_STMT
  2056. # DEBUG BEGIN_STMT
  2057. # DEBUG BEGIN_STMT
  2058. <bb 32> [local count: 47853715]:
  2059. goto <bb 18>; [100.00%]
  2060. <bb 19> [local count: 52639]:
  2061. # xReturn_24 = PHI <1(11), 1(12), 1(13), 0(14), 1(10), 1(16), 1(15)>
  2062. <L35>:
  2063. # DEBUG xReturn => xReturn_24
  2064. # DEBUG BEGIN_STMT
  2065. # DEBUG BEGIN_STMT
  2066. if (ucOriginalNotifyState_36 == 1)
  2067. goto <bb 20>; [51.12%]
  2068. else
  2069. goto <bb 29>; [48.88%]
  2070. <bb 20> [local count: 26909]:
  2071. # DEBUG BEGIN_STMT
  2072. pxList_44 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pvContainer;
  2073. # DEBUG pxList => pxList_44
  2074. # DEBUG BEGIN_STMT
  2075. _7 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxNext;
  2076. _8 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxPrevious;
  2077. _7->pxPrevious = _8;
  2078. # DEBUG BEGIN_STMT
  2079. _9 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxPrevious;
  2080. _9->pxNext = _7;
  2081. # DEBUG BEGIN_STMT
  2082. _10 = pxList_44->pxIndex;
  2083. _11 = &MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem;
  2084. if (_10 == _11)
  2085. goto <bb 21>; [30.00%]
  2086. else
  2087. goto <bb 22>; [70.00%]
  2088. <bb 21> [local count: 8073]:
  2089. # DEBUG BEGIN_STMT
  2090. pxList_44->pxIndex = _9;
  2091. <bb 22> [local count: 26909]:
  2092. # DEBUG BEGIN_STMT
  2093. # DEBUG BEGIN_STMT
  2094. _12 ={v} pxList_44->uxNumberOfItems;
  2095. _13 = _12 + 4294967295;
  2096. pxList_44->uxNumberOfItems ={v} _13;
  2097. # DEBUG BEGIN_STMT
  2098. # DEBUG BEGIN_STMT
  2099. # DEBUG BEGIN_STMT
  2100. _14 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].uxPriority;
  2101. uxTopReadyPriority.154_15 ={v} uxTopReadyPriority;
  2102. if (_14 > uxTopReadyPriority.154_15)
  2103. goto <bb 23>; [50.00%]
  2104. else
  2105. goto <bb 24>; [50.00%]
  2106. <bb 23> [local count: 13455]:
  2107. # DEBUG BEGIN_STMT
  2108. uxTopReadyPriority ={v} _14;
  2109. <bb 24> [local count: 26909]:
  2110. # DEBUG BEGIN_STMT
  2111. # DEBUG BEGIN_STMT
  2112. pxIndex_50 = pxReadyTasksLists[_14].pxIndex;
  2113. # DEBUG pxIndex => pxIndex_50
  2114. # DEBUG BEGIN_STMT
  2115. # DEBUG BEGIN_STMT
  2116. # DEBUG BEGIN_STMT
  2117. MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxNext = pxIndex_50;
  2118. # DEBUG BEGIN_STMT
  2119. _16 = pxIndex_50->pxPrevious;
  2120. MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxPrevious = _16;
  2121. # DEBUG BEGIN_STMT
  2122. _17 = pxIndex_50->pxPrevious;
  2123. _17->pxNext = _11;
  2124. # DEBUG BEGIN_STMT
  2125. pxIndex_50->pxPrevious = _11;
  2126. # DEBUG BEGIN_STMT
  2127. _18 = &pxReadyTasksLists[_14];
  2128. MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pvContainer = _18;
  2129. # DEBUG BEGIN_STMT
  2130. _19 ={v} pxReadyTasksLists[_14].uxNumberOfItems;
  2131. _20 = _19 + 1;
  2132. pxReadyTasksLists[_14].uxNumberOfItems ={v} _20;
  2133. # DEBUG BEGIN_STMT
  2134. # DEBUG BEGIN_STMT
  2135. # DEBUG BEGIN_STMT
  2136. _21 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xEventListItem.pvContainer;
  2137. if (_21 != 0B)
  2138. goto <bb 25>; [70.00%]
  2139. else
  2140. goto <bb 27>; [30.00%]
  2141. <bb 25> [local count: 18836]:
  2142. # DEBUG BEGIN_STMT
  2143. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2144. # DEBUG BEGIN_STMT
  2145. # DEBUG BEGIN_STMT
  2146. __asm__ __volatile__(" mov %0, %1
  2147. msr basepri, %0
  2148. isb
  2149. dsb
  2150. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  2151. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  2152. <bb 26> [local count: 188363707]:
  2153. # DEBUG ulNewBASEPRI => NULL
  2154. # DEBUG BEGIN_STMT
  2155. # DEBUG BEGIN_STMT
  2156. # DEBUG BEGIN_STMT
  2157. <bb 33> [local count: 188363706]:
  2158. goto <bb 26>; [100.00%]
  2159. <bb 27> [local count: 8073]:
  2160. # DEBUG BEGIN_STMT
  2161. # DEBUG BEGIN_STMT
  2162. pxCurrentTCB.155_22 ={v} pxCurrentTCB;
  2163. _23 = pxCurrentTCB.155_22->uxPriority;
  2164. if (_14 > _23)
  2165. goto <bb 28>; [50.00%]
  2166. else
  2167. goto <bb 29>; [50.00%]
  2168. <bb 28> [local count: 4036]:
  2169. # DEBUG BEGIN_STMT
  2170. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2171. # DEBUG BEGIN_STMT
  2172. __asm__ __volatile__("dsb" : : : "memory");
  2173. # DEBUG BEGIN_STMT
  2174. __asm__ __volatile__("isb");
  2175. # DEBUG BEGIN_STMT
  2176. <bb 29> [local count: 33803]:
  2177. # DEBUG BEGIN_STMT
  2178. # DEBUG BEGIN_STMT
  2179. vPortExitCritical ();
  2180. # DEBUG BEGIN_STMT
  2181. return xReturn_24;
  2182. }
  2183. xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait)
  2184. {
  2185. uint32_t ulNewBASEPRI;
  2186. BaseType_t xReturn;
  2187. struct TCB_t * pxCurrentTCB.146_1;
  2188. unsigned char _2;
  2189. long unsigned int _3;
  2190. long unsigned int _4;
  2191. long unsigned int _5;
  2192. struct TCB_t * pxCurrentTCB.148_6;
  2193. struct TCB_t * pxCurrentTCB.149_7;
  2194. long unsigned int _8;
  2195. struct TCB_t * pxCurrentTCB.150_9;
  2196. unsigned char _10;
  2197. long unsigned int _11;
  2198. long unsigned int _12;
  2199. long unsigned int _13;
  2200. struct TCB_t * pxCurrentTCB.152_14;
  2201. struct TCB_t * pxCurrentTCB.147_22;
  2202. struct TCB_t * pxCurrentTCB.151_35;
  2203. <bb 2> [local count: 160260]:
  2204. # DEBUG BEGIN_STMT
  2205. # DEBUG BEGIN_STMT
  2206. if (uxIndexToWait_19(D) != 0)
  2207. goto <bb 3>; [67.00%]
  2208. else
  2209. goto <bb 5>; [33.00%]
  2210. <bb 3> [local count: 107374]:
  2211. # DEBUG BEGIN_STMT
  2212. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2213. # DEBUG BEGIN_STMT
  2214. # DEBUG BEGIN_STMT
  2215. __asm__ __volatile__(" mov %0, %1
  2216. msr basepri, %0
  2217. isb
  2218. dsb
  2219. " : "=r" ulNewBASEPRI_40 : "i" 16 : "memory");
  2220. # DEBUG ulNewBASEPRI => ulNewBASEPRI_40
  2221. <bb 4> [local count: 1073741824]:
  2222. # DEBUG ulNewBASEPRI => NULL
  2223. # DEBUG BEGIN_STMT
  2224. # DEBUG BEGIN_STMT
  2225. # DEBUG BEGIN_STMT
  2226. <bb 13> [local count: 1073741824]:
  2227. goto <bb 4>; [100.00%]
  2228. <bb 5> [local count: 52886]:
  2229. # DEBUG BEGIN_STMT
  2230. # DEBUG BEGIN_STMT
  2231. vPortEnterCritical ();
  2232. # DEBUG BEGIN_STMT
  2233. pxCurrentTCB.146_1 ={v} pxCurrentTCB;
  2234. _2 ={v} pxCurrentTCB.146_1->ucNotifyState[0];
  2235. if (_2 != 2)
  2236. goto <bb 6>; [66.00%]
  2237. else
  2238. goto <bb 8>; [34.00%]
  2239. <bb 6> [local count: 34905]:
  2240. # DEBUG BEGIN_STMT
  2241. pxCurrentTCB.147_22 ={v} pxCurrentTCB;
  2242. _3 ={v} pxCurrentTCB.147_22->ulNotifiedValue[0];
  2243. _4 = ~ulBitsToClearOnEntry_23(D);
  2244. _5 = _3 & _4;
  2245. pxCurrentTCB.147_22->ulNotifiedValue[0] ={v} _5;
  2246. # DEBUG BEGIN_STMT
  2247. pxCurrentTCB.148_6 ={v} pxCurrentTCB;
  2248. pxCurrentTCB.148_6->ucNotifyState[0] ={v} 1;
  2249. # DEBUG BEGIN_STMT
  2250. if (xTicksToWait_26(D) != 0)
  2251. goto <bb 7>; [33.00%]
  2252. else
  2253. goto <bb 8>; [67.00%]
  2254. <bb 7> [local count: 11519]:
  2255. # DEBUG BEGIN_STMT
  2256. prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1);
  2257. # DEBUG BEGIN_STMT
  2258. # DEBUG BEGIN_STMT
  2259. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2260. # DEBUG BEGIN_STMT
  2261. __asm__ __volatile__("dsb" : : : "memory");
  2262. # DEBUG BEGIN_STMT
  2263. __asm__ __volatile__("isb");
  2264. # DEBUG BEGIN_STMT
  2265. <bb 8> [local count: 52886]:
  2266. # DEBUG BEGIN_STMT
  2267. # DEBUG BEGIN_STMT
  2268. vPortExitCritical ();
  2269. # DEBUG BEGIN_STMT
  2270. vPortEnterCritical ();
  2271. # DEBUG BEGIN_STMT
  2272. # DEBUG BEGIN_STMT
  2273. if (pulNotificationValue_33(D) != 0B)
  2274. goto <bb 9>; [70.00%]
  2275. else
  2276. goto <bb 10>; [30.00%]
  2277. <bb 9> [local count: 37020]:
  2278. # DEBUG BEGIN_STMT
  2279. pxCurrentTCB.149_7 ={v} pxCurrentTCB;
  2280. _8 ={v} pxCurrentTCB.149_7->ulNotifiedValue[0];
  2281. *pulNotificationValue_33(D) = _8;
  2282. <bb 10> [local count: 52886]:
  2283. # DEBUG BEGIN_STMT
  2284. pxCurrentTCB.150_9 ={v} pxCurrentTCB;
  2285. _10 ={v} pxCurrentTCB.150_9->ucNotifyState[0];
  2286. if (_10 != 2)
  2287. goto <bb 12>; [66.00%]
  2288. else
  2289. goto <bb 11>; [34.00%]
  2290. <bb 11> [local count: 17981]:
  2291. # DEBUG BEGIN_STMT
  2292. pxCurrentTCB.151_35 ={v} pxCurrentTCB;
  2293. _11 ={v} pxCurrentTCB.151_35->ulNotifiedValue[0];
  2294. _12 = ~ulBitsToClearOnExit_36(D);
  2295. _13 = _11 & _12;
  2296. pxCurrentTCB.151_35->ulNotifiedValue[0] ={v} _13;
  2297. # DEBUG BEGIN_STMT
  2298. # DEBUG xReturn => 1
  2299. <bb 12> [local count: 52886]:
  2300. # xReturn_15 = PHI <0(10), 1(11)>
  2301. # DEBUG xReturn => xReturn_15
  2302. # DEBUG BEGIN_STMT
  2303. pxCurrentTCB.152_14 ={v} pxCurrentTCB;
  2304. pxCurrentTCB.152_14->ucNotifyState[0] ={v} 0;
  2305. # DEBUG BEGIN_STMT
  2306. vPortExitCritical ();
  2307. # DEBUG BEGIN_STMT
  2308. return xReturn_15;
  2309. }
  2310. ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
  2311. {
  2312. uint32_t ulNewBASEPRI;
  2313. uint32_t ulReturn;
  2314. struct TCB_t * pxCurrentTCB.140_1;
  2315. long unsigned int _2;
  2316. struct TCB_t * pxCurrentTCB.141_3;
  2317. struct TCB_t * pxCurrentTCB.142_4;
  2318. struct TCB_t * pxCurrentTCB.143_5;
  2319. struct TCB_t * pxCurrentTCB.144_6;
  2320. long unsigned int _7;
  2321. struct TCB_t * pxCurrentTCB.145_8;
  2322. <bb 2> [local count: 160260]:
  2323. # DEBUG BEGIN_STMT
  2324. # DEBUG BEGIN_STMT
  2325. if (uxIndexToWait_11(D) != 0)
  2326. goto <bb 3>; [67.00%]
  2327. else
  2328. goto <bb 5>; [33.00%]
  2329. <bb 3> [local count: 107374]:
  2330. # DEBUG BEGIN_STMT
  2331. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2332. # DEBUG BEGIN_STMT
  2333. # DEBUG BEGIN_STMT
  2334. __asm__ __volatile__(" mov %0, %1
  2335. msr basepri, %0
  2336. isb
  2337. dsb
  2338. " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  2339. # DEBUG ulNewBASEPRI => ulNewBASEPRI_28
  2340. <bb 4> [local count: 1073741824]:
  2341. # DEBUG ulNewBASEPRI => NULL
  2342. # DEBUG BEGIN_STMT
  2343. # DEBUG BEGIN_STMT
  2344. # DEBUG BEGIN_STMT
  2345. <bb 13> [local count: 1073741824]:
  2346. goto <bb 4>; [100.00%]
  2347. <bb 5> [local count: 52886]:
  2348. # DEBUG BEGIN_STMT
  2349. # DEBUG BEGIN_STMT
  2350. vPortEnterCritical ();
  2351. # DEBUG BEGIN_STMT
  2352. pxCurrentTCB.140_1 ={v} pxCurrentTCB;
  2353. _2 ={v} pxCurrentTCB.140_1->ulNotifiedValue[0];
  2354. if (_2 == 0)
  2355. goto <bb 6>; [50.00%]
  2356. else
  2357. goto <bb 8>; [50.00%]
  2358. <bb 6> [local count: 26443]:
  2359. # DEBUG BEGIN_STMT
  2360. pxCurrentTCB.141_3 ={v} pxCurrentTCB;
  2361. pxCurrentTCB.141_3->ucNotifyState[0] ={v} 1;
  2362. # DEBUG BEGIN_STMT
  2363. if (xTicksToWait_15(D) != 0)
  2364. goto <bb 7>; [33.00%]
  2365. else
  2366. goto <bb 8>; [67.00%]
  2367. <bb 7> [local count: 8726]:
  2368. # DEBUG BEGIN_STMT
  2369. prvAddCurrentTaskToDelayedList (xTicksToWait_15(D), 1);
  2370. # DEBUG BEGIN_STMT
  2371. # DEBUG BEGIN_STMT
  2372. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2373. # DEBUG BEGIN_STMT
  2374. __asm__ __volatile__("dsb" : : : "memory");
  2375. # DEBUG BEGIN_STMT
  2376. __asm__ __volatile__("isb");
  2377. # DEBUG BEGIN_STMT
  2378. <bb 8> [local count: 52886]:
  2379. # DEBUG BEGIN_STMT
  2380. # DEBUG BEGIN_STMT
  2381. vPortExitCritical ();
  2382. # DEBUG BEGIN_STMT
  2383. vPortEnterCritical ();
  2384. # DEBUG BEGIN_STMT
  2385. # DEBUG BEGIN_STMT
  2386. pxCurrentTCB.142_4 ={v} pxCurrentTCB;
  2387. ulReturn_22 ={v} pxCurrentTCB.142_4->ulNotifiedValue[0];
  2388. # DEBUG ulReturn => ulReturn_22
  2389. # DEBUG BEGIN_STMT
  2390. if (ulReturn_22 != 0)
  2391. goto <bb 9>; [50.00%]
  2392. else
  2393. goto <bb 12>; [50.00%]
  2394. <bb 9> [local count: 26443]:
  2395. # DEBUG BEGIN_STMT
  2396. if (xClearCountOnExit_23(D) != 0)
  2397. goto <bb 10>; [50.00%]
  2398. else
  2399. goto <bb 11>; [50.00%]
  2400. <bb 10> [local count: 13221]:
  2401. # DEBUG BEGIN_STMT
  2402. pxCurrentTCB.143_5 ={v} pxCurrentTCB;
  2403. pxCurrentTCB.143_5->ulNotifiedValue[0] ={v} 0;
  2404. goto <bb 12>; [100.00%]
  2405. <bb 11> [local count: 13221]:
  2406. # DEBUG BEGIN_STMT
  2407. pxCurrentTCB.144_6 ={v} pxCurrentTCB;
  2408. _7 = ulReturn_22 + 4294967295;
  2409. pxCurrentTCB.144_6->ulNotifiedValue[0] ={v} _7;
  2410. <bb 12> [local count: 52886]:
  2411. # DEBUG BEGIN_STMT
  2412. # DEBUG BEGIN_STMT
  2413. pxCurrentTCB.145_8 ={v} pxCurrentTCB;
  2414. pxCurrentTCB.145_8->ucNotifyState[0] ={v} 0;
  2415. # DEBUG BEGIN_STMT
  2416. vPortExitCritical ();
  2417. # DEBUG BEGIN_STMT
  2418. return ulReturn_22;
  2419. }
  2420. pvTaskIncrementMutexHeldCount ()
  2421. {
  2422. struct TCB_t * pxCurrentTCB.138_1;
  2423. struct TCB_t * pxCurrentTCB.139_2;
  2424. long unsigned int _3;
  2425. long unsigned int _4;
  2426. struct tskTaskControlBlock * _8;
  2427. <bb 2> [local count: 1073741824]:
  2428. # DEBUG BEGIN_STMT
  2429. pxCurrentTCB.138_1 ={v} pxCurrentTCB;
  2430. if (pxCurrentTCB.138_1 != 0B)
  2431. goto <bb 3>; [70.00%]
  2432. else
  2433. goto <bb 4>; [30.00%]
  2434. <bb 3> [local count: 751619278]:
  2435. # DEBUG BEGIN_STMT
  2436. pxCurrentTCB.139_2 ={v} pxCurrentTCB;
  2437. _3 = pxCurrentTCB.139_2->uxMutexesHeld;
  2438. _4 = _3 + 1;
  2439. pxCurrentTCB.139_2->uxMutexesHeld = _4;
  2440. <bb 4> [local count: 1073741824]:
  2441. # DEBUG BEGIN_STMT
  2442. _8 ={v} pxCurrentTCB;
  2443. return _8;
  2444. }
  2445. uxTaskResetEventItemValue ()
  2446. {
  2447. TickType_t uxReturn;
  2448. struct TCB_t * pxCurrentTCB.135_1;
  2449. struct TCB_t * pxCurrentTCB.136_2;
  2450. long unsigned int _3;
  2451. struct TCB_t * pxCurrentTCB.137_4;
  2452. long unsigned int _5;
  2453. <bb 2> [local count: 1073741824]:
  2454. # DEBUG BEGIN_STMT
  2455. # DEBUG BEGIN_STMT
  2456. pxCurrentTCB.135_1 ={v} pxCurrentTCB;
  2457. uxReturn_7 = pxCurrentTCB.135_1->xEventListItem.xItemValue;
  2458. # DEBUG uxReturn => uxReturn_7
  2459. # DEBUG BEGIN_STMT
  2460. pxCurrentTCB.136_2 ={v} pxCurrentTCB;
  2461. _3 = pxCurrentTCB.136_2->uxPriority;
  2462. pxCurrentTCB.137_4 ={v} pxCurrentTCB;
  2463. _5 = 5 - _3;
  2464. pxCurrentTCB.137_4->xEventListItem.xItemValue = _5;
  2465. # DEBUG BEGIN_STMT
  2466. return uxReturn_7;
  2467. }
  2468. vTaskList (char * pcWriteBuffer)
  2469. {
  2470. char cStatus;
  2471. UBaseType_t x;
  2472. UBaseType_t uxArraySize;
  2473. struct TaskStatus_t * pxTaskStatusArray;
  2474. long unsigned int uxCurrentNumberOfTasks.134_1;
  2475. long unsigned int _2;
  2476. long unsigned int _3;
  2477. struct TaskStatus_t * _4;
  2478. <unnamed type> _5;
  2479. unsigned int _6;
  2480. const char * _8;
  2481. int _9;
  2482. long unsigned int _11;
  2483. short unsigned int _12;
  2484. unsigned int _13;
  2485. long unsigned int _14;
  2486. unsigned int _15;
  2487. <bb 2> [local count: 220893212]:
  2488. # DEBUG BEGIN_STMT
  2489. # DEBUG BEGIN_STMT
  2490. # DEBUG BEGIN_STMT
  2491. # DEBUG BEGIN_STMT
  2492. *pcWriteBuffer_22(D) = 0;
  2493. # DEBUG BEGIN_STMT
  2494. uxArraySize_24 ={v} uxCurrentNumberOfTasks;
  2495. # DEBUG uxArraySize => uxArraySize_24
  2496. # DEBUG BEGIN_STMT
  2497. uxCurrentNumberOfTasks.134_1 ={v} uxCurrentNumberOfTasks;
  2498. _2 = uxCurrentNumberOfTasks.134_1 * 36;
  2499. pxTaskStatusArray_26 = pvPortMalloc (_2);
  2500. # DEBUG pxTaskStatusArray => pxTaskStatusArray_26
  2501. # DEBUG BEGIN_STMT
  2502. if (pxTaskStatusArray_26 != 0B)
  2503. goto <bb 3>; [53.47%]
  2504. else
  2505. goto <bb 10>; [46.53%]
  2506. <bb 3> [local count: 118111600]:
  2507. # DEBUG BEGIN_STMT
  2508. uxArraySize_28 = uxTaskGetSystemState (pxTaskStatusArray_26, uxArraySize_24, 0B);
  2509. # DEBUG uxArraySize => uxArraySize_28
  2510. # DEBUG BEGIN_STMT
  2511. # DEBUG x => 0
  2512. goto <bb 8>; [100.00%]
  2513. <bb 4> [local count: 955630226]:
  2514. # DEBUG BEGIN_STMT
  2515. _3 = x_17 * 36;
  2516. _4 = pxTaskStatusArray_26 + _3;
  2517. _5 = _4->eCurrentState;
  2518. _6 = _5;
  2519. if (_6 <= 4)
  2520. goto <bb 6>; [50.00%]
  2521. else
  2522. goto <bb 5>; [50.00%]
  2523. <bb 5> [local count: 477815113]:
  2524. <L15>:
  2525. cStatus_10 = 0;
  2526. goto <bb 7>; [100.00%]
  2527. <bb 6> [local count: 477815113]:
  2528. <L16>:
  2529. cStatus_7 = CSWTCH.225[_6];
  2530. <bb 7> [local count: 955630226]:
  2531. # cStatus_18 = PHI <cStatus_7(6), cStatus_10(5)>
  2532. <L17>:
  2533. <L14>:
  2534. # DEBUG cStatus => cStatus_18
  2535. # DEBUG BEGIN_STMT
  2536. _8 = _4->pcTaskName;
  2537. pcWriteBuffer_31 = prvWriteNameToBuffer (pcWriteBuffer_16, _8);
  2538. # DEBUG pcWriteBuffer => pcWriteBuffer_31
  2539. # DEBUG BEGIN_STMT
  2540. _9 = (int) cStatus_18;
  2541. _11 = _4->uxCurrentPriority;
  2542. _12 = _4->usStackHighWaterMark;
  2543. _13 = (unsigned int) _12;
  2544. _14 = _4->xTaskNumber;
  2545. sprintf (pcWriteBuffer_31, "\t%c\t%u\t%u\t%u\r\n", _9, _11, _13, _14);
  2546. # DEBUG BEGIN_STMT
  2547. _15 = strlen (pcWriteBuffer_31);
  2548. pcWriteBuffer_33 = pcWriteBuffer_31 + _15;
  2549. # DEBUG pcWriteBuffer => pcWriteBuffer_33
  2550. # DEBUG BEGIN_STMT
  2551. x_34 = x_17 + 1;
  2552. # DEBUG x => x_34
  2553. <bb 8> [local count: 1073741824]:
  2554. # pcWriteBuffer_16 = PHI <pcWriteBuffer_22(D)(3), pcWriteBuffer_33(7)>
  2555. # x_17 = PHI <0(3), x_34(7)>
  2556. # DEBUG x => x_17
  2557. # DEBUG pcWriteBuffer => pcWriteBuffer_16
  2558. # DEBUG BEGIN_STMT
  2559. if (x_17 < uxArraySize_28)
  2560. goto <bb 4>; [89.00%]
  2561. else
  2562. goto <bb 9>; [11.00%]
  2563. <bb 9> [local count: 118111601]:
  2564. # DEBUG BEGIN_STMT
  2565. vPortFree (pxTaskStatusArray_26);
  2566. <bb 10> [local count: 220893212]:
  2567. # DEBUG BEGIN_STMT
  2568. return;
  2569. }
  2570. prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName)
  2571. {
  2572. size_t x;
  2573. char * _1;
  2574. char * _2;
  2575. <bb 2> [local count: 118111600]:
  2576. # DEBUG BEGIN_STMT
  2577. # DEBUG BEGIN_STMT
  2578. strcpy (pcBuffer_6(D), pcTaskName_7(D));
  2579. # DEBUG BEGIN_STMT
  2580. x_9 = strlen (pcBuffer_6(D));
  2581. # DEBUG x => x_9
  2582. goto <bb 4>; [100.00%]
  2583. <bb 3> [local count: 955630223]:
  2584. # DEBUG BEGIN_STMT
  2585. _1 = pcBuffer_6(D) + x_3;
  2586. *_1 = 32;
  2587. # DEBUG BEGIN_STMT
  2588. x_13 = x_3 + 1;
  2589. # DEBUG x => x_13
  2590. <bb 4> [local count: 1073741824]:
  2591. # x_3 = PHI <x_9(2), x_13(3)>
  2592. # DEBUG x => x_3
  2593. # DEBUG BEGIN_STMT
  2594. if (x_3 <= 8)
  2595. goto <bb 3>; [89.00%]
  2596. else
  2597. goto <bb 5>; [11.00%]
  2598. <bb 5> [local count: 118111601]:
  2599. # x_11 = PHI <x_3(4)>
  2600. # DEBUG BEGIN_STMT
  2601. _2 = pcBuffer_6(D) + x_11;
  2602. *_2 = 0;
  2603. # DEBUG BEGIN_STMT
  2604. return _2;
  2605. }
  2606. vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask)
  2607. {
  2608. uint32_t ulNewBASEPRI;
  2609. uint32_t ulNewBASEPRI;
  2610. struct ListItem_t * const pxIndex;
  2611. UBaseType_t uxPriorityToUse;
  2612. long unsigned int _1;
  2613. long unsigned int _2;
  2614. long unsigned int _3;
  2615. struct TCB_t * pxCurrentTCB.132_4;
  2616. long unsigned int _5;
  2617. signed int _6;
  2618. long unsigned int _7;
  2619. struct xLIST * _8;
  2620. struct List_t * _9;
  2621. struct ListItem_t * _10;
  2622. long unsigned int _12;
  2623. long unsigned int uxTopReadyPriority.133_13;
  2624. struct xLIST_ITEM * _14;
  2625. struct xLIST_ITEM * _15;
  2626. struct List_t * _16;
  2627. long unsigned int _17;
  2628. long unsigned int _18;
  2629. <bb 2> [local count: 306783]:
  2630. # DEBUG BEGIN_STMT
  2631. # DEBUG pxTCB => pxMutexHolder_22(D)
  2632. # DEBUG BEGIN_STMT
  2633. # DEBUG BEGIN_STMT
  2634. # DEBUG uxOnlyOneMutexHeld => 1
  2635. # DEBUG BEGIN_STMT
  2636. if (pxMutexHolder_22(D) != 0B)
  2637. goto <bb 3>; [70.00%]
  2638. else
  2639. goto <bb 17>; [30.00%]
  2640. <bb 3> [local count: 214748]:
  2641. # DEBUG BEGIN_STMT
  2642. _1 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxMutexesHeld;
  2643. if (_1 == 0)
  2644. goto <bb 4>; [50.00%]
  2645. else
  2646. goto <bb 6>; [50.00%]
  2647. <bb 4> [local count: 107374]:
  2648. # DEBUG BEGIN_STMT
  2649. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2650. # DEBUG BEGIN_STMT
  2651. # DEBUG BEGIN_STMT
  2652. __asm__ __volatile__(" mov %0, %1
  2653. msr basepri, %0
  2654. isb
  2655. dsb
  2656. " : "=r" ulNewBASEPRI_36 : "i" 16 : "memory");
  2657. # DEBUG ulNewBASEPRI => ulNewBASEPRI_36
  2658. <bb 5> [local count: 1073741823]:
  2659. # DEBUG ulNewBASEPRI => NULL
  2660. # DEBUG BEGIN_STMT
  2661. # DEBUG BEGIN_STMT
  2662. # DEBUG BEGIN_STMT
  2663. <bb 18> [local count: 1073741824]:
  2664. goto <bb 5>; [100.00%]
  2665. <bb 6> [local count: 107374]:
  2666. # DEBUG BEGIN_STMT
  2667. # DEBUG BEGIN_STMT
  2668. _2 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxBasePriority;
  2669. uxPriorityToUse_11 = MAX_EXPR <_2, uxHighestPriorityWaitingTask_24(D)>;
  2670. # DEBUG uxPriorityToUse => uxPriorityToUse_11
  2671. # DEBUG BEGIN_STMT
  2672. _3 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxPriority;
  2673. if (_3 != uxPriorityToUse_11)
  2674. goto <bb 7>; [66.00%]
  2675. else
  2676. goto <bb 17>; [34.00%]
  2677. <bb 7> [local count: 70867]:
  2678. # DEBUG BEGIN_STMT
  2679. if (_1 == 1)
  2680. goto <bb 8>; [34.00%]
  2681. else
  2682. goto <bb 17>; [66.00%]
  2683. <bb 8> [local count: 24095]:
  2684. # DEBUG BEGIN_STMT
  2685. pxCurrentTCB.132_4 ={v} pxCurrentTCB;
  2686. if (pxCurrentTCB.132_4 == pxMutexHolder_22(D))
  2687. goto <bb 9>; [30.00%]
  2688. else
  2689. goto <bb 11>; [70.00%]
  2690. <bb 9> [local count: 7228]:
  2691. # DEBUG BEGIN_STMT
  2692. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2693. # DEBUG BEGIN_STMT
  2694. # DEBUG BEGIN_STMT
  2695. __asm__ __volatile__(" mov %0, %1
  2696. msr basepri, %0
  2697. isb
  2698. dsb
  2699. " : "=r" ulNewBASEPRI_37 : "i" 16 : "memory");
  2700. # DEBUG ulNewBASEPRI => ulNewBASEPRI_37
  2701. <bb 10> [local count: 72284299]:
  2702. # DEBUG ulNewBASEPRI => NULL
  2703. # DEBUG BEGIN_STMT
  2704. # DEBUG BEGIN_STMT
  2705. # DEBUG BEGIN_STMT
  2706. <bb 19> [local count: 72284299]:
  2707. goto <bb 10>; [100.00%]
  2708. <bb 11> [local count: 16866]:
  2709. # DEBUG BEGIN_STMT
  2710. # DEBUG BEGIN_STMT
  2711. # DEBUG BEGIN_STMT
  2712. # DEBUG uxPriorityUsedOnEntry => _3
  2713. # DEBUG BEGIN_STMT
  2714. MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxPriority = uxPriorityToUse_11;
  2715. # DEBUG BEGIN_STMT
  2716. _5 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].xEventListItem.xItemValue;
  2717. _6 = (signed int) _5;
  2718. if (_6 >= 0)
  2719. goto <bb 12>; [59.00%]
  2720. else
  2721. goto <bb 13>; [41.00%]
  2722. <bb 12> [local count: 9951]:
  2723. # DEBUG BEGIN_STMT
  2724. _7 = 5 - uxPriorityToUse_11;
  2725. MEM[(struct TCB_t *)pxMutexHolder_22(D)].xEventListItem.xItemValue = _7;
  2726. <bb 13> [local count: 16866]:
  2727. # DEBUG BEGIN_STMT
  2728. # DEBUG BEGIN_STMT
  2729. _8 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pvContainer;
  2730. _9 = &pxReadyTasksLists[_3];
  2731. if (_8 == _9)
  2732. goto <bb 14>; [17.43%]
  2733. else
  2734. goto <bb 17>; [82.57%]
  2735. <bb 14> [local count: 2940]:
  2736. # DEBUG BEGIN_STMT
  2737. _10 = &MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem;
  2738. uxListRemove (_10);
  2739. # DEBUG BEGIN_STMT
  2740. # DEBUG BEGIN_STMT
  2741. # DEBUG BEGIN_STMT
  2742. _12 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxPriority;
  2743. uxTopReadyPriority.133_13 ={v} uxTopReadyPriority;
  2744. if (_12 > uxTopReadyPriority.133_13)
  2745. goto <bb 15>; [50.00%]
  2746. else
  2747. goto <bb 16>; [50.00%]
  2748. <bb 15> [local count: 1470]:
  2749. # DEBUG BEGIN_STMT
  2750. uxTopReadyPriority ={v} _12;
  2751. <bb 16> [local count: 2940]:
  2752. # DEBUG BEGIN_STMT
  2753. # DEBUG BEGIN_STMT
  2754. pxIndex_29 = pxReadyTasksLists[_12].pxIndex;
  2755. # DEBUG pxIndex => pxIndex_29
  2756. # DEBUG BEGIN_STMT
  2757. # DEBUG BEGIN_STMT
  2758. # DEBUG BEGIN_STMT
  2759. MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pxNext = pxIndex_29;
  2760. # DEBUG BEGIN_STMT
  2761. _14 = pxIndex_29->pxPrevious;
  2762. MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pxPrevious = _14;
  2763. # DEBUG BEGIN_STMT
  2764. _15 = pxIndex_29->pxPrevious;
  2765. _15->pxNext = _10;
  2766. # DEBUG BEGIN_STMT
  2767. pxIndex_29->pxPrevious = _10;
  2768. # DEBUG BEGIN_STMT
  2769. _16 = &pxReadyTasksLists[_12];
  2770. MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pvContainer = _16;
  2771. # DEBUG BEGIN_STMT
  2772. _17 ={v} pxReadyTasksLists[_12].uxNumberOfItems;
  2773. _18 = _17 + 1;
  2774. pxReadyTasksLists[_12].uxNumberOfItems ={v} _18;
  2775. # DEBUG BEGIN_STMT
  2776. # DEBUG BEGIN_STMT
  2777. <bb 17> [local count: 192180]:
  2778. # DEBUG BEGIN_STMT
  2779. return;
  2780. }
  2781. xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder)
  2782. {
  2783. uint32_t ulNewBASEPRI;
  2784. uint32_t ulNewBASEPRI;
  2785. struct ListItem_t * const pxIndex;
  2786. BaseType_t xReturn;
  2787. struct TCB_t * pxCurrentTCB.130_1;
  2788. long unsigned int _2;
  2789. long unsigned int _3;
  2790. long unsigned int _4;
  2791. long unsigned int _5;
  2792. struct ListItem_t * _6;
  2793. long unsigned int _7;
  2794. long unsigned int _8;
  2795. long unsigned int uxTopReadyPriority.131_9;
  2796. struct xLIST_ITEM * _10;
  2797. struct xLIST_ITEM * _11;
  2798. struct List_t * _12;
  2799. long unsigned int _13;
  2800. long unsigned int _14;
  2801. <bb 2> [local count: 219131]:
  2802. # DEBUG BEGIN_STMT
  2803. # DEBUG pxTCB => pxMutexHolder_18(D)
  2804. # DEBUG BEGIN_STMT
  2805. # DEBUG xReturn => 0
  2806. # DEBUG BEGIN_STMT
  2807. if (pxMutexHolder_18(D) != 0B)
  2808. goto <bb 3>; [70.00%]
  2809. else
  2810. goto <bb 14>; [30.00%]
  2811. <bb 3> [local count: 153391]:
  2812. # DEBUG BEGIN_STMT
  2813. pxCurrentTCB.130_1 ={v} pxCurrentTCB;
  2814. if (pxCurrentTCB.130_1 != pxMutexHolder_18(D))
  2815. goto <bb 4>; [70.00%]
  2816. else
  2817. goto <bb 6>; [30.00%]
  2818. <bb 4> [local count: 107374]:
  2819. # DEBUG BEGIN_STMT
  2820. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2821. # DEBUG BEGIN_STMT
  2822. # DEBUG BEGIN_STMT
  2823. __asm__ __volatile__(" mov %0, %1
  2824. msr basepri, %0
  2825. isb
  2826. dsb
  2827. " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory");
  2828. # DEBUG ulNewBASEPRI => ulNewBASEPRI_32
  2829. <bb 5> [local count: 1073741824]:
  2830. # DEBUG ulNewBASEPRI => NULL
  2831. # DEBUG BEGIN_STMT
  2832. # DEBUG BEGIN_STMT
  2833. # DEBUG BEGIN_STMT
  2834. <bb 15> [local count: 1073741824]:
  2835. goto <bb 5>; [100.00%]
  2836. <bb 6> [local count: 46017]:
  2837. # DEBUG BEGIN_STMT
  2838. # DEBUG BEGIN_STMT
  2839. _2 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxMutexesHeld;
  2840. if (_2 == 0)
  2841. goto <bb 7>; [50.00%]
  2842. else
  2843. goto <bb 9>; [50.00%]
  2844. <bb 7> [local count: 23009]:
  2845. # DEBUG BEGIN_STMT
  2846. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2847. # DEBUG BEGIN_STMT
  2848. # DEBUG BEGIN_STMT
  2849. __asm__ __volatile__(" mov %0, %1
  2850. msr basepri, %0
  2851. isb
  2852. dsb
  2853. " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory");
  2854. # DEBUG ulNewBASEPRI => ulNewBASEPRI_33
  2855. <bb 8> [local count: 230087534]:
  2856. # DEBUG ulNewBASEPRI => NULL
  2857. # DEBUG BEGIN_STMT
  2858. # DEBUG BEGIN_STMT
  2859. # DEBUG BEGIN_STMT
  2860. <bb 16> [local count: 230087534]:
  2861. goto <bb 8>; [100.00%]
  2862. <bb 9> [local count: 23009]:
  2863. # DEBUG BEGIN_STMT
  2864. # DEBUG BEGIN_STMT
  2865. _3 = _2 + 4294967295;
  2866. MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxMutexesHeld = _3;
  2867. # DEBUG BEGIN_STMT
  2868. _4 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxPriority;
  2869. _5 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxBasePriority;
  2870. if (_4 != _5)
  2871. goto <bb 10>; [66.00%]
  2872. else
  2873. goto <bb 14>; [34.00%]
  2874. <bb 10> [local count: 15186]:
  2875. # DEBUG BEGIN_STMT
  2876. if (_3 == 0)
  2877. goto <bb 11>; [33.00%]
  2878. else
  2879. goto <bb 14>; [67.00%]
  2880. <bb 11> [local count: 5011]:
  2881. # DEBUG BEGIN_STMT
  2882. _6 = &MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem;
  2883. uxListRemove (_6);
  2884. # DEBUG BEGIN_STMT
  2885. # DEBUG BEGIN_STMT
  2886. # DEBUG BEGIN_STMT
  2887. _7 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxBasePriority;
  2888. MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxPriority = _7;
  2889. # DEBUG BEGIN_STMT
  2890. _8 = 5 - _7;
  2891. MEM[(struct TCB_t *)pxMutexHolder_18(D)].xEventListItem.xItemValue = _8;
  2892. # DEBUG BEGIN_STMT
  2893. # DEBUG BEGIN_STMT
  2894. uxTopReadyPriority.131_9 ={v} uxTopReadyPriority;
  2895. if (_7 > uxTopReadyPriority.131_9)
  2896. goto <bb 12>; [50.00%]
  2897. else
  2898. goto <bb 13>; [50.00%]
  2899. <bb 12> [local count: 2506]:
  2900. # DEBUG BEGIN_STMT
  2901. uxTopReadyPriority ={v} _7;
  2902. <bb 13> [local count: 5011]:
  2903. # DEBUG BEGIN_STMT
  2904. # DEBUG BEGIN_STMT
  2905. pxIndex_25 = pxReadyTasksLists[_7].pxIndex;
  2906. # DEBUG pxIndex => pxIndex_25
  2907. # DEBUG BEGIN_STMT
  2908. # DEBUG BEGIN_STMT
  2909. # DEBUG BEGIN_STMT
  2910. MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem.pxNext = pxIndex_25;
  2911. # DEBUG BEGIN_STMT
  2912. _10 = pxIndex_25->pxPrevious;
  2913. MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem.pxPrevious = _10;
  2914. # DEBUG BEGIN_STMT
  2915. _11 = pxIndex_25->pxPrevious;
  2916. _11->pxNext = _6;
  2917. # DEBUG BEGIN_STMT
  2918. pxIndex_25->pxPrevious = _6;
  2919. # DEBUG BEGIN_STMT
  2920. _12 = &pxReadyTasksLists[_7];
  2921. MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem.pvContainer = _12;
  2922. # DEBUG BEGIN_STMT
  2923. _13 ={v} pxReadyTasksLists[_7].uxNumberOfItems;
  2924. _14 = _13 + 1;
  2925. pxReadyTasksLists[_7].uxNumberOfItems ={v} _14;
  2926. # DEBUG BEGIN_STMT
  2927. # DEBUG BEGIN_STMT
  2928. # DEBUG BEGIN_STMT
  2929. # DEBUG xReturn => 1
  2930. <bb 14> [local count: 88748]:
  2931. # xReturn_15 = PHI <0(2), 1(13), 0(9), 0(10)>
  2932. # DEBUG xReturn => xReturn_15
  2933. # DEBUG BEGIN_STMT
  2934. # DEBUG BEGIN_STMT
  2935. return xReturn_15;
  2936. }
  2937. xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder)
  2938. {
  2939. struct ListItem_t * const pxIndex;
  2940. BaseType_t xReturn;
  2941. long unsigned int _1;
  2942. struct TCB_t * pxCurrentTCB.124_2;
  2943. long unsigned int _3;
  2944. long unsigned int _4;
  2945. signed int _5;
  2946. struct TCB_t * pxCurrentTCB.125_6;
  2947. long unsigned int _7;
  2948. long unsigned int _8;
  2949. struct xLIST * _9;
  2950. struct List_t * _10;
  2951. struct ListItem_t * _11;
  2952. struct TCB_t * pxCurrentTCB.126_12;
  2953. long unsigned int _13;
  2954. long unsigned int uxTopReadyPriority.127_14;
  2955. struct xLIST_ITEM * _15;
  2956. struct xLIST_ITEM * _16;
  2957. struct List_t * _17;
  2958. long unsigned int _18;
  2959. long unsigned int _19;
  2960. struct TCB_t * pxCurrentTCB.128_20;
  2961. long unsigned int _21;
  2962. long unsigned int _22;
  2963. struct TCB_t * pxCurrentTCB.129_23;
  2964. long unsigned int _24;
  2965. <bb 2> [local count: 1073741824]:
  2966. # DEBUG BEGIN_STMT
  2967. # DEBUG pxMutexHolderTCB => pxMutexHolder_29(D)
  2968. # DEBUG BEGIN_STMT
  2969. # DEBUG xReturn => 0
  2970. # DEBUG BEGIN_STMT
  2971. if (pxMutexHolder_29(D) != 0B)
  2972. goto <bb 3>; [70.00%]
  2973. else
  2974. goto <bb 13>; [30.00%]
  2975. <bb 3> [local count: 751619278]:
  2976. # DEBUG BEGIN_STMT
  2977. _1 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxPriority;
  2978. pxCurrentTCB.124_2 ={v} pxCurrentTCB;
  2979. _3 = pxCurrentTCB.124_2->uxPriority;
  2980. if (_1 < _3)
  2981. goto <bb 4>; [50.00%]
  2982. else
  2983. goto <bb 11>; [50.00%]
  2984. <bb 4> [local count: 375809639]:
  2985. # DEBUG BEGIN_STMT
  2986. _4 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].xEventListItem.xItemValue;
  2987. _5 = (signed int) _4;
  2988. if (_5 >= 0)
  2989. goto <bb 5>; [59.00%]
  2990. else
  2991. goto <bb 6>; [41.00%]
  2992. <bb 5> [local count: 221727687]:
  2993. # DEBUG BEGIN_STMT
  2994. pxCurrentTCB.125_6 ={v} pxCurrentTCB;
  2995. _7 = pxCurrentTCB.125_6->uxPriority;
  2996. _8 = 5 - _7;
  2997. MEM[(struct TCB_t *)pxMutexHolder_29(D)].xEventListItem.xItemValue = _8;
  2998. <bb 6> [local count: 375809639]:
  2999. # DEBUG BEGIN_STMT
  3000. # DEBUG BEGIN_STMT
  3001. _9 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pvContainer;
  3002. _10 = &pxReadyTasksLists[_1];
  3003. if (_9 == _10)
  3004. goto <bb 7>; [17.43%]
  3005. else
  3006. goto <bb 10>; [82.57%]
  3007. <bb 7> [local count: 65503620]:
  3008. # DEBUG BEGIN_STMT
  3009. _11 = &MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem;
  3010. uxListRemove (_11);
  3011. # DEBUG BEGIN_STMT
  3012. # DEBUG BEGIN_STMT
  3013. pxCurrentTCB.126_12 ={v} pxCurrentTCB;
  3014. _13 = pxCurrentTCB.126_12->uxPriority;
  3015. MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxPriority = _13;
  3016. # DEBUG BEGIN_STMT
  3017. # DEBUG BEGIN_STMT
  3018. uxTopReadyPriority.127_14 ={v} uxTopReadyPriority;
  3019. if (_13 > uxTopReadyPriority.127_14)
  3020. goto <bb 8>; [50.00%]
  3021. else
  3022. goto <bb 9>; [50.00%]
  3023. <bb 8> [local count: 32751810]:
  3024. # DEBUG BEGIN_STMT
  3025. uxTopReadyPriority ={v} _13;
  3026. <bb 9> [local count: 65503620]:
  3027. # DEBUG BEGIN_STMT
  3028. # DEBUG BEGIN_STMT
  3029. pxIndex_36 = pxReadyTasksLists[_13].pxIndex;
  3030. # DEBUG pxIndex => pxIndex_36
  3031. # DEBUG BEGIN_STMT
  3032. # DEBUG BEGIN_STMT
  3033. # DEBUG BEGIN_STMT
  3034. MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pxNext = pxIndex_36;
  3035. # DEBUG BEGIN_STMT
  3036. _15 = pxIndex_36->pxPrevious;
  3037. MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pxPrevious = _15;
  3038. # DEBUG BEGIN_STMT
  3039. _16 = pxIndex_36->pxPrevious;
  3040. _16->pxNext = _11;
  3041. # DEBUG BEGIN_STMT
  3042. pxIndex_36->pxPrevious = _11;
  3043. # DEBUG BEGIN_STMT
  3044. _17 = &pxReadyTasksLists[_13];
  3045. MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pvContainer = _17;
  3046. # DEBUG BEGIN_STMT
  3047. _18 ={v} pxReadyTasksLists[_13].uxNumberOfItems;
  3048. _19 = _18 + 1;
  3049. pxReadyTasksLists[_13].uxNumberOfItems ={v} _19;
  3050. # DEBUG BEGIN_STMT
  3051. # DEBUG BEGIN_STMT
  3052. goto <bb 13>; [100.00%]
  3053. <bb 10> [local count: 310306019]:
  3054. # DEBUG BEGIN_STMT
  3055. pxCurrentTCB.128_20 ={v} pxCurrentTCB;
  3056. _21 = pxCurrentTCB.128_20->uxPriority;
  3057. MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxPriority = _21;
  3058. goto <bb 13>; [100.00%]
  3059. <bb 11> [local count: 375809639]:
  3060. # DEBUG BEGIN_STMT
  3061. _22 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxBasePriority;
  3062. pxCurrentTCB.129_23 ={v} pxCurrentTCB;
  3063. _24 = pxCurrentTCB.129_23->uxPriority;
  3064. if (_22 < _24)
  3065. goto <bb 12>; [50.00%]
  3066. else
  3067. goto <bb 13>; [50.00%]
  3068. <bb 12> [local count: 187904819]:
  3069. # DEBUG BEGIN_STMT
  3070. # DEBUG xReturn => 1
  3071. <bb 13> [local count: 1073741824]:
  3072. # xReturn_25 = PHI <0(2), 0(11), 1(10), 1(12), 1(9)>
  3073. # DEBUG xReturn => xReturn_25
  3074. # DEBUG BEGIN_STMT
  3075. # DEBUG BEGIN_STMT
  3076. return xReturn_25;
  3077. }
  3078. xTaskGetSchedulerState ()
  3079. {
  3080. BaseType_t xReturn;
  3081. long int xSchedulerRunning.122_1;
  3082. long unsigned int uxSchedulerSuspended.123_2;
  3083. <bb 2> [local count: 1073741824]:
  3084. # DEBUG BEGIN_STMT
  3085. # DEBUG BEGIN_STMT
  3086. xSchedulerRunning.122_1 ={v} xSchedulerRunning;
  3087. if (xSchedulerRunning.122_1 == 0)
  3088. goto <bb 5>; [50.00%]
  3089. else
  3090. goto <bb 3>; [50.00%]
  3091. <bb 3> [local count: 536870913]:
  3092. # DEBUG BEGIN_STMT
  3093. uxSchedulerSuspended.123_2 ={v} uxSchedulerSuspended;
  3094. if (uxSchedulerSuspended.123_2 == 0)
  3095. goto <bb 5>; [35.00%]
  3096. else
  3097. goto <bb 4>; [65.00%]
  3098. <bb 4> [local count: 348966093]:
  3099. # DEBUG BEGIN_STMT
  3100. # DEBUG xReturn => 0
  3101. <bb 5> [local count: 1073741824]:
  3102. # xReturn_3 = PHI <1(2), 2(3), 0(4)>
  3103. # DEBUG xReturn => xReturn_3
  3104. # DEBUG BEGIN_STMT
  3105. return xReturn_3;
  3106. }
  3107. xTaskGetCurrentTaskHandle ()
  3108. {
  3109. struct tskTaskControlBlock * xReturn;
  3110. <bb 2> [local count: 1073741824]:
  3111. # DEBUG BEGIN_STMT
  3112. # DEBUG BEGIN_STMT
  3113. xReturn_2 ={v} pxCurrentTCB;
  3114. # DEBUG xReturn => xReturn_2
  3115. # DEBUG BEGIN_STMT
  3116. return xReturn_2;
  3117. }
  3118. prvResetNextTaskUnblockTime ()
  3119. {
  3120. struct List_t * pxDelayedTaskList.20_1;
  3121. long unsigned int _2;
  3122. <bb 2> [local count: 1073741824]:
  3123. # DEBUG BEGIN_STMT
  3124. pxDelayedTaskList.20_1 ={v} pxDelayedTaskList;
  3125. _2 ={v} pxDelayedTaskList.20_1->uxNumberOfItems;
  3126. if (_2 == 0)
  3127. goto <bb 3>; [50.00%]
  3128. else
  3129. goto <bb 4>; [50.00%]
  3130. <bb 3> [local count: 536870913]:
  3131. # DEBUG BEGIN_STMT
  3132. xNextTaskUnblockTime ={v} 4294967295;
  3133. goto <bb 5>; [100.00%]
  3134. <bb 4> [local count: 536870912]:
  3135. prvResetNextTaskUnblockTime.part.0 ();
  3136. <bb 5> [local count: 1073741824]:
  3137. return;
  3138. }
  3139. prvDeleteTCB (struct TCB_t * pxTCB)
  3140. {
  3141. StackType_t * _1;
  3142. <bb 2> [local count: 1073741824]:
  3143. # DEBUG BEGIN_STMT
  3144. # DEBUG BEGIN_STMT
  3145. _1 = pxTCB_3(D)->pxStack;
  3146. vPortFree (_1);
  3147. # DEBUG BEGIN_STMT
  3148. vPortFree (pxTCB_3(D));
  3149. return;
  3150. }
  3151. uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask)
  3152. {
  3153. UBaseType_t uxReturn;
  3154. uint8_t * pucEndOfStack;
  3155. short unsigned int _1;
  3156. struct TCB_t * iftmp.121_2;
  3157. struct TCB_t * iftmp.121_5;
  3158. <bb 2> [local count: 1073741824]:
  3159. # DEBUG BEGIN_STMT
  3160. # DEBUG BEGIN_STMT
  3161. # DEBUG BEGIN_STMT
  3162. # DEBUG BEGIN_STMT
  3163. if (xTask_3(D) == 0B)
  3164. goto <bb 3>; [30.00%]
  3165. else
  3166. goto <bb 4>; [70.00%]
  3167. <bb 3> [local count: 322122547]:
  3168. iftmp.121_5 ={v} pxCurrentTCB;
  3169. <bb 4> [local count: 1073741824]:
  3170. # iftmp.121_2 = PHI <iftmp.121_5(3), xTask_3(D)(2)>
  3171. # DEBUG pxTCB => iftmp.121_2
  3172. # DEBUG BEGIN_STMT
  3173. pucEndOfStack_6 = iftmp.121_2->pxStack;
  3174. # DEBUG pucEndOfStack => pucEndOfStack_6
  3175. # DEBUG BEGIN_STMT
  3176. _1 = prvTaskCheckFreeStackSpace (pucEndOfStack_6);
  3177. uxReturn_7 = (UBaseType_t) _1;
  3178. # DEBUG uxReturn => uxReturn_7
  3179. # DEBUG BEGIN_STMT
  3180. return uxReturn_7;
  3181. }
  3182. prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte)
  3183. {
  3184. uint32_t ulCount;
  3185. unsigned char _1;
  3186. uint16_t _8;
  3187. <bb 2> [local count: 118111600]:
  3188. # DEBUG BEGIN_STMT
  3189. # DEBUG ulCount => 0
  3190. # DEBUG BEGIN_STMT
  3191. goto <bb 4>; [100.00%]
  3192. <bb 3> [local count: 955630223]:
  3193. # DEBUG BEGIN_STMT
  3194. pucStackByte_9 = pucStackByte_2 + 1;
  3195. # DEBUG pucStackByte => pucStackByte_9
  3196. # DEBUG BEGIN_STMT
  3197. ulCount_10 = ulCount_3 + 1;
  3198. # DEBUG ulCount => ulCount_10
  3199. <bb 4> [local count: 1073741824]:
  3200. # pucStackByte_2 = PHI <pucStackByte_5(D)(2), pucStackByte_9(3)>
  3201. # ulCount_3 = PHI <0(2), ulCount_10(3)>
  3202. # DEBUG ulCount => ulCount_3
  3203. # DEBUG pucStackByte => pucStackByte_2
  3204. # DEBUG BEGIN_STMT
  3205. _1 = *pucStackByte_2;
  3206. if (_1 == 165)
  3207. goto <bb 3>; [89.00%]
  3208. else
  3209. goto <bb 5>; [11.00%]
  3210. <bb 5> [local count: 118111601]:
  3211. # ulCount_4 = PHI <ulCount_3(4)>
  3212. # DEBUG BEGIN_STMT
  3213. ulCount_7 = ulCount_4 >> 2;
  3214. # DEBUG ulCount => ulCount_7
  3215. # DEBUG BEGIN_STMT
  3216. _8 = (uint16_t) ulCount_7;
  3217. return _8;
  3218. }
  3219. prvListTasksWithinSingleList (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState)
  3220. {
  3221. UBaseType_t uxTask;
  3222. long unsigned int _1;
  3223. <bb 2> [local count: 236223200]:
  3224. # DEBUG BEGIN_STMT
  3225. # DEBUG BEGIN_STMT
  3226. # DEBUG uxTask => 0
  3227. # DEBUG BEGIN_STMT
  3228. _1 ={v} pxList_7(D)->uxNumberOfItems;
  3229. if (_1 != 0)
  3230. goto <bb 3>; [50.00%]
  3231. else
  3232. goto <bb 4>; [50.00%]
  3233. <bb 3> [local count: 118111600]:
  3234. uxTask_2 = prvListTasksWithinSingleList.part.0 (pxTaskStatusArray_8(D), pxList_7(D), eState_9(D));
  3235. <bb 4> [local count: 236223201]:
  3236. # uxTask_5 = PHI <0(2), uxTask_2(3)>
  3237. # DEBUG uxTask => uxTask_5
  3238. # DEBUG BEGIN_STMT
  3239. # DEBUG BEGIN_STMT
  3240. return uxTask_5;
  3241. }
  3242. vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState)
  3243. {
  3244. char * _1;
  3245. long unsigned int _2;
  3246. StackType_t * _3;
  3247. long unsigned int _4;
  3248. long unsigned int _5;
  3249. struct TCB_t * pxCurrentTCB.120_6;
  3250. struct xLIST * _7;
  3251. <unnamed type> _8;
  3252. StackType_t * _9;
  3253. short unsigned int _10;
  3254. struct TCB_t * iftmp.119_11;
  3255. struct TCB_t * iftmp.119_17;
  3256. <bb 2> [local count: 1073741823]:
  3257. # DEBUG BEGIN_STMT
  3258. # DEBUG BEGIN_STMT
  3259. if (xTask_15(D) == 0B)
  3260. goto <bb 3>; [30.00%]
  3261. else
  3262. goto <bb 4>; [70.00%]
  3263. <bb 3> [local count: 322122547]:
  3264. iftmp.119_17 ={v} pxCurrentTCB;
  3265. <bb 4> [local count: 1073741823]:
  3266. # iftmp.119_11 = PHI <iftmp.119_17(3), xTask_15(D)(2)>
  3267. # DEBUG pxTCB => iftmp.119_11
  3268. # DEBUG BEGIN_STMT
  3269. pxTaskStatus_18(D)->xHandle = iftmp.119_11;
  3270. # DEBUG BEGIN_STMT
  3271. _1 = &iftmp.119_11->pcTaskName[0];
  3272. pxTaskStatus_18(D)->pcTaskName = _1;
  3273. # DEBUG BEGIN_STMT
  3274. _2 = iftmp.119_11->uxPriority;
  3275. pxTaskStatus_18(D)->uxCurrentPriority = _2;
  3276. # DEBUG BEGIN_STMT
  3277. _3 = iftmp.119_11->pxStack;
  3278. pxTaskStatus_18(D)->pxStackBase = _3;
  3279. # DEBUG BEGIN_STMT
  3280. _4 = iftmp.119_11->uxTCBNumber;
  3281. pxTaskStatus_18(D)->xTaskNumber = _4;
  3282. # DEBUG BEGIN_STMT
  3283. _5 = iftmp.119_11->uxBasePriority;
  3284. pxTaskStatus_18(D)->uxBasePriority = _5;
  3285. # DEBUG BEGIN_STMT
  3286. pxTaskStatus_18(D)->ulRunTimeCounter = 0;
  3287. # DEBUG BEGIN_STMT
  3288. if (eState_26(D) != 5)
  3289. goto <bb 5>; [79.76%]
  3290. else
  3291. goto <bb 11>; [20.24%]
  3292. <bb 5> [local count: 856416478]:
  3293. # DEBUG BEGIN_STMT
  3294. pxCurrentTCB.120_6 ={v} pxCurrentTCB;
  3295. if (pxCurrentTCB.120_6 == iftmp.119_11)
  3296. goto <bb 6>; [30.00%]
  3297. else
  3298. goto <bb 7>; [70.00%]
  3299. <bb 6> [local count: 256924943]:
  3300. # DEBUG BEGIN_STMT
  3301. pxTaskStatus_18(D)->eCurrentState = 0;
  3302. goto <bb 12>; [100.00%]
  3303. <bb 7> [local count: 599491536]:
  3304. # DEBUG BEGIN_STMT
  3305. pxTaskStatus_18(D)->eCurrentState = eState_26(D);
  3306. # DEBUG BEGIN_STMT
  3307. if (eState_26(D) == 3)
  3308. goto <bb 8>; [20.24%]
  3309. else
  3310. goto <bb 12>; [79.76%]
  3311. <bb 8> [local count: 121337087]:
  3312. # DEBUG BEGIN_STMT
  3313. vTaskSuspendAll ();
  3314. # DEBUG BEGIN_STMT
  3315. _7 = iftmp.119_11->xEventListItem.pvContainer;
  3316. if (_7 != 0B)
  3317. goto <bb 9>; [70.00%]
  3318. else
  3319. goto <bb 10>; [30.00%]
  3320. <bb 9> [local count: 84935961]:
  3321. # DEBUG BEGIN_STMT
  3322. pxTaskStatus_18(D)->eCurrentState = 2;
  3323. <bb 10> [local count: 121337087]:
  3324. # DEBUG BEGIN_STMT
  3325. xTaskResumeAll ();
  3326. goto <bb 12>; [100.00%]
  3327. <bb 11> [local count: 217325345]:
  3328. # DEBUG BEGIN_STMT
  3329. _8 = eTaskGetState (iftmp.119_11);
  3330. pxTaskStatus_18(D)->eCurrentState = _8;
  3331. <bb 12> [local count: 1073741824]:
  3332. # DEBUG BEGIN_STMT
  3333. if (xGetFreeStackSpace_34(D) != 0)
  3334. goto <bb 13>; [33.00%]
  3335. else
  3336. goto <bb 14>; [67.00%]
  3337. <bb 13> [local count: 354334802]:
  3338. # DEBUG BEGIN_STMT
  3339. _9 = iftmp.119_11->pxStack;
  3340. _10 = prvTaskCheckFreeStackSpace (_9);
  3341. pxTaskStatus_18(D)->usStackHighWaterMark = _10;
  3342. goto <bb 15>; [100.00%]
  3343. <bb 14> [local count: 719407024]:
  3344. # DEBUG BEGIN_STMT
  3345. pxTaskStatus_18(D)->usStackHighWaterMark = 0;
  3346. <bb 15> [local count: 1073741824]:
  3347. return;
  3348. }
  3349. prvCheckTasksWaitingTermination ()
  3350. {
  3351. struct TCB_t * pxTCB;
  3352. struct xLIST_ITEM * _1;
  3353. struct ListItem_t * _2;
  3354. long unsigned int uxCurrentNumberOfTasks.58_3;
  3355. long unsigned int _4;
  3356. long unsigned int uxDeletedTasksWaitingCleanUp.59_5;
  3357. long unsigned int _6;
  3358. long unsigned int uxDeletedTasksWaitingCleanUp.60_7;
  3359. <bb 2> [local count: 118111600]:
  3360. # DEBUG BEGIN_STMT
  3361. # DEBUG BEGIN_STMT
  3362. goto <bb 4>; [100.00%]
  3363. <bb 3> [local count: 955630223]:
  3364. # DEBUG BEGIN_STMT
  3365. vPortEnterCritical ();
  3366. # DEBUG BEGIN_STMT
  3367. _1 = xTasksWaitingTermination.xListEnd.pxNext;
  3368. pxTCB_11 = _1->pvOwner;
  3369. # DEBUG pxTCB => pxTCB_11
  3370. # DEBUG BEGIN_STMT
  3371. _2 = &pxTCB_11->xStateListItem;
  3372. uxListRemove (_2);
  3373. # DEBUG BEGIN_STMT
  3374. uxCurrentNumberOfTasks.58_3 ={v} uxCurrentNumberOfTasks;
  3375. _4 = uxCurrentNumberOfTasks.58_3 + 4294967295;
  3376. uxCurrentNumberOfTasks ={v} _4;
  3377. # DEBUG BEGIN_STMT
  3378. uxDeletedTasksWaitingCleanUp.59_5 ={v} uxDeletedTasksWaitingCleanUp;
  3379. _6 = uxDeletedTasksWaitingCleanUp.59_5 + 4294967295;
  3380. uxDeletedTasksWaitingCleanUp ={v} _6;
  3381. # DEBUG BEGIN_STMT
  3382. vPortExitCritical ();
  3383. # DEBUG BEGIN_STMT
  3384. prvDeleteTCB (pxTCB_11);
  3385. <bb 4> [local count: 1073741824]:
  3386. # DEBUG BEGIN_STMT
  3387. uxDeletedTasksWaitingCleanUp.60_7 ={v} uxDeletedTasksWaitingCleanUp;
  3388. if (uxDeletedTasksWaitingCleanUp.60_7 != 0)
  3389. goto <bb 3>; [89.00%]
  3390. else
  3391. goto <bb 5>; [11.00%]
  3392. <bb 5> [local count: 118111601]:
  3393. return;
  3394. }
  3395. prvInitialiseTaskLists ()
  3396. {
  3397. UBaseType_t uxPriority;
  3398. struct List_t * _1;
  3399. <bb 2> [local count: 178992762]:
  3400. # DEBUG BEGIN_STMT
  3401. # DEBUG BEGIN_STMT
  3402. # DEBUG uxPriority => 0
  3403. goto <bb 4>; [100.00%]
  3404. <bb 3> [local count: 894749063]:
  3405. # DEBUG BEGIN_STMT
  3406. _1 = &pxReadyTasksLists[uxPriority_2];
  3407. vListInitialise (_1);
  3408. # DEBUG BEGIN_STMT
  3409. uxPriority_13 = uxPriority_2 + 1;
  3410. # DEBUG uxPriority => uxPriority_13
  3411. <bb 4> [local count: 1073741824]:
  3412. # uxPriority_2 = PHI <0(2), uxPriority_13(3)>
  3413. # DEBUG uxPriority => uxPriority_2
  3414. # DEBUG BEGIN_STMT
  3415. if (uxPriority_2 != 5)
  3416. goto <bb 3>; [83.33%]
  3417. else
  3418. goto <bb 5>; [16.67%]
  3419. <bb 5> [local count: 178992762]:
  3420. # DEBUG BEGIN_STMT
  3421. vListInitialise (&xDelayedTaskList1);
  3422. # DEBUG BEGIN_STMT
  3423. vListInitialise (&xDelayedTaskList2);
  3424. # DEBUG BEGIN_STMT
  3425. vListInitialise (&xPendingReadyList);
  3426. # DEBUG BEGIN_STMT
  3427. vListInitialise (&xTasksWaitingTermination);
  3428. # DEBUG BEGIN_STMT
  3429. vListInitialise (&xSuspendedTaskList);
  3430. # DEBUG BEGIN_STMT
  3431. pxDelayedTaskList ={v} &xDelayedTaskList1;
  3432. # DEBUG BEGIN_STMT
  3433. pxOverflowDelayedTaskList ={v} &xDelayedTaskList2;
  3434. return;
  3435. }
  3436. prvIdleTask (void * pvParameters)
  3437. {
  3438. long unsigned int _1;
  3439. <bb 2> [local count: 63351]:
  3440. <bb 3> [local count: 633507677]:
  3441. <bb 4> [local count: 1073741824]:
  3442. # DEBUG BEGIN_STMT
  3443. # DEBUG BEGIN_STMT
  3444. # DEBUG BEGIN_STMT
  3445. # DEBUG BEGIN_STMT
  3446. prvCheckTasksWaitingTermination ();
  3447. # DEBUG BEGIN_STMT
  3448. _1 ={v} pxReadyTasksLists[0].uxNumberOfItems;
  3449. if (_1 > 1)
  3450. goto <bb 5>; [59.00%]
  3451. else
  3452. goto <bb 6>; [41.00%]
  3453. <bb 6> [local count: 440234148]:
  3454. goto <bb 4>; [100.00%]
  3455. <bb 5> [local count: 633507677]:
  3456. # DEBUG BEGIN_STMT
  3457. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3458. # DEBUG BEGIN_STMT
  3459. __asm__ __volatile__("dsb" : : : "memory");
  3460. # DEBUG BEGIN_STMT
  3461. __asm__ __volatile__("isb");
  3462. # DEBUG BEGIN_STMT
  3463. goto <bb 3>; [100.00%]
  3464. }
  3465. vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle)
  3466. {
  3467. <bb 2> [local count: 1073741824]:
  3468. # DEBUG BEGIN_STMT
  3469. # DEBUG BEGIN_STMT
  3470. if (xTask_2(D) != 0B)
  3471. goto <bb 3>; [70.00%]
  3472. else
  3473. goto <bb 4>; [30.00%]
  3474. <bb 3> [local count: 751619278]:
  3475. # DEBUG BEGIN_STMT
  3476. # DEBUG pxTCB => xTask_2(D)
  3477. # DEBUG BEGIN_STMT
  3478. MEM[(struct TCB_t *)xTask_2(D)].uxTaskNumber = uxHandle_4(D);
  3479. <bb 4> [local count: 1073741824]:
  3480. return;
  3481. }
  3482. uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask)
  3483. {
  3484. UBaseType_t uxReturn;
  3485. <bb 2> [local count: 1073741824]:
  3486. # DEBUG BEGIN_STMT
  3487. # DEBUG BEGIN_STMT
  3488. # DEBUG BEGIN_STMT
  3489. if (xTask_2(D) != 0B)
  3490. goto <bb 3>; [70.00%]
  3491. else
  3492. goto <bb 4>; [30.00%]
  3493. <bb 3> [local count: 751619278]:
  3494. # DEBUG BEGIN_STMT
  3495. # DEBUG pxTCB => xTask_2(D)
  3496. # DEBUG BEGIN_STMT
  3497. uxReturn_4 = MEM[(const struct TCB_t *)xTask_2(D)].uxTaskNumber;
  3498. # DEBUG uxReturn => uxReturn_4
  3499. <bb 4> [local count: 1073741824]:
  3500. # uxReturn_1 = PHI <uxReturn_4(3), 0(2)>
  3501. # DEBUG uxReturn => uxReturn_1
  3502. # DEBUG BEGIN_STMT
  3503. return uxReturn_1;
  3504. }
  3505. vTaskMissedYield ()
  3506. {
  3507. <bb 2> [local count: 1073741824]:
  3508. # DEBUG BEGIN_STMT
  3509. xYieldPending ={v} 1;
  3510. return;
  3511. }
  3512. xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait)
  3513. {
  3514. uint32_t ulNewBASEPRI;
  3515. uint32_t ulNewBASEPRI;
  3516. const TickType_t xElapsedTime;
  3517. const TickType_t xConstTickCount;
  3518. BaseType_t xReturn;
  3519. long unsigned int _1;
  3520. struct TCB_t * pxCurrentTCB.116_2;
  3521. unsigned char _3;
  3522. struct TCB_t * pxCurrentTCB.117_4;
  3523. long unsigned int _5;
  3524. long int _6;
  3525. long int xNumOfOverflows.118_7;
  3526. long unsigned int _8;
  3527. long unsigned int _17;
  3528. <bb 2> [local count: 329661]:
  3529. # DEBUG BEGIN_STMT
  3530. # DEBUG BEGIN_STMT
  3531. if (pxTimeOut_11(D) == 0B)
  3532. goto <bb 3>; [30.00%]
  3533. else
  3534. goto <bb 5>; [70.00%]
  3535. <bb 3> [local count: 98898]:
  3536. # DEBUG BEGIN_STMT
  3537. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3538. # DEBUG BEGIN_STMT
  3539. # DEBUG BEGIN_STMT
  3540. __asm__ __volatile__(" mov %0, %1
  3541. msr basepri, %0
  3542. isb
  3543. dsb
  3544. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  3545. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  3546. <bb 4> [local count: 988985746]:
  3547. # DEBUG ulNewBASEPRI => NULL
  3548. # DEBUG BEGIN_STMT
  3549. # DEBUG BEGIN_STMT
  3550. # DEBUG BEGIN_STMT
  3551. <bb 18> [local count: 988985746]:
  3552. goto <bb 4>; [100.00%]
  3553. <bb 5> [local count: 230763]:
  3554. # DEBUG BEGIN_STMT
  3555. # DEBUG BEGIN_STMT
  3556. if (pxTicksToWait_12(D) == 0B)
  3557. goto <bb 6>; [46.53%]
  3558. else
  3559. goto <bb 8>; [53.47%]
  3560. <bb 6> [local count: 107374]:
  3561. # DEBUG BEGIN_STMT
  3562. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3563. # DEBUG BEGIN_STMT
  3564. # DEBUG BEGIN_STMT
  3565. __asm__ __volatile__(" mov %0, %1
  3566. msr basepri, %0
  3567. isb
  3568. dsb
  3569. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  3570. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  3571. <bb 7> [local count: 1073741824]:
  3572. # DEBUG ulNewBASEPRI => NULL
  3573. # DEBUG BEGIN_STMT
  3574. # DEBUG BEGIN_STMT
  3575. # DEBUG BEGIN_STMT
  3576. <bb 19> [local count: 1073741824]:
  3577. goto <bb 7>; [100.00%]
  3578. <bb 8> [local count: 123389]:
  3579. # DEBUG BEGIN_STMT
  3580. # DEBUG BEGIN_STMT
  3581. vPortEnterCritical ();
  3582. # DEBUG BEGIN_STMT
  3583. xConstTickCount_15 ={v} xTickCount;
  3584. # DEBUG xConstTickCount => xConstTickCount_15
  3585. # DEBUG BEGIN_STMT
  3586. _1 = pxTimeOut_11(D)->xTimeOnEntering;
  3587. xElapsedTime_16 = xConstTickCount_15 - _1;
  3588. # DEBUG xElapsedTime => xElapsedTime_16
  3589. # DEBUG BEGIN_STMT
  3590. pxCurrentTCB.116_2 ={v} pxCurrentTCB;
  3591. _3 = pxCurrentTCB.116_2->ucDelayAborted;
  3592. if (_3 != 0)
  3593. goto <bb 9>; [50.00%]
  3594. else
  3595. goto <bb 10>; [50.00%]
  3596. <bb 9> [local count: 61694]:
  3597. # DEBUG BEGIN_STMT
  3598. pxCurrentTCB.117_4 ={v} pxCurrentTCB;
  3599. pxCurrentTCB.117_4->ucDelayAborted = 0;
  3600. # DEBUG BEGIN_STMT
  3601. # DEBUG xReturn => 1
  3602. goto <bb 17>; [100.00%]
  3603. <bb 10> [local count: 61694]:
  3604. # DEBUG BEGIN_STMT
  3605. _5 = *pxTicksToWait_12(D);
  3606. if (_5 == 4294967295)
  3607. goto <bb 17>; [34.00%]
  3608. else
  3609. goto <bb 11>; [66.00%]
  3610. <bb 11> [local count: 40718]:
  3611. # DEBUG BEGIN_STMT
  3612. _6 = pxTimeOut_11(D)->xOverflowCount;
  3613. xNumOfOverflows.118_7 ={v} xNumOfOverflows;
  3614. if (_6 != xNumOfOverflows.118_7)
  3615. goto <bb 12>; [66.00%]
  3616. else
  3617. goto <bb 14>; [34.00%]
  3618. <bb 12> [local count: 26874]:
  3619. if (_1 <= xConstTickCount_15)
  3620. goto <bb 13>; [50.00%]
  3621. else
  3622. goto <bb 14>; [50.00%]
  3623. <bb 13> [local count: 13437]:
  3624. # DEBUG BEGIN_STMT
  3625. # DEBUG xReturn => 1
  3626. # DEBUG BEGIN_STMT
  3627. *pxTicksToWait_12(D) = 0;
  3628. goto <bb 17>; [100.00%]
  3629. <bb 14> [local count: 27281]:
  3630. # DEBUG BEGIN_STMT
  3631. if (_5 > xElapsedTime_16)
  3632. goto <bb 15>; [33.00%]
  3633. else
  3634. goto <bb 16>; [67.00%]
  3635. <bb 15> [local count: 9003]:
  3636. # DEBUG BEGIN_STMT
  3637. _17 = _1 - xConstTickCount_15;
  3638. _8 = _5 + _17;
  3639. *pxTicksToWait_12(D) = _8;
  3640. # DEBUG BEGIN_STMT
  3641. vTaskInternalSetTimeOutState (pxTimeOut_11(D));
  3642. # DEBUG BEGIN_STMT
  3643. # DEBUG xReturn => 0
  3644. goto <bb 17>; [100.00%]
  3645. <bb 16> [local count: 18278]:
  3646. # DEBUG BEGIN_STMT
  3647. *pxTicksToWait_12(D) = 0;
  3648. # DEBUG BEGIN_STMT
  3649. # DEBUG xReturn => 1
  3650. <bb 17> [local count: 123389]:
  3651. # xReturn_9 = PHI <1(9), 0(10), 1(13), 0(15), 1(16)>
  3652. # DEBUG xReturn => xReturn_9
  3653. # DEBUG BEGIN_STMT
  3654. vPortExitCritical ();
  3655. # DEBUG BEGIN_STMT
  3656. return xReturn_9;
  3657. }
  3658. vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut)
  3659. {
  3660. long int xNumOfOverflows.114_1;
  3661. long unsigned int xTickCount.115_2;
  3662. <bb 2> [local count: 1073741824]:
  3663. # DEBUG BEGIN_STMT
  3664. xNumOfOverflows.114_1 ={v} xNumOfOverflows;
  3665. pxTimeOut_4(D)->xOverflowCount = xNumOfOverflows.114_1;
  3666. # DEBUG BEGIN_STMT
  3667. xTickCount.115_2 ={v} xTickCount;
  3668. pxTimeOut_4(D)->xTimeOnEntering = xTickCount.115_2;
  3669. return;
  3670. }
  3671. vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut)
  3672. {
  3673. uint32_t ulNewBASEPRI;
  3674. long int xNumOfOverflows.112_1;
  3675. long unsigned int xTickCount.113_2;
  3676. <bb 2> [local count: 230763]:
  3677. # DEBUG BEGIN_STMT
  3678. if (pxTimeOut_3(D) == 0B)
  3679. goto <bb 3>; [46.53%]
  3680. else
  3681. goto <bb 5>; [53.47%]
  3682. <bb 3> [local count: 107374]:
  3683. # DEBUG BEGIN_STMT
  3684. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3685. # DEBUG BEGIN_STMT
  3686. # DEBUG BEGIN_STMT
  3687. __asm__ __volatile__(" mov %0, %1
  3688. msr basepri, %0
  3689. isb
  3690. dsb
  3691. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  3692. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  3693. <bb 4> [local count: 1073741824]:
  3694. # DEBUG ulNewBASEPRI => NULL
  3695. # DEBUG BEGIN_STMT
  3696. # DEBUG BEGIN_STMT
  3697. # DEBUG BEGIN_STMT
  3698. <bb 6> [local count: 1073741824]:
  3699. goto <bb 4>; [100.00%]
  3700. <bb 5> [local count: 123389]:
  3701. # DEBUG BEGIN_STMT
  3702. # DEBUG BEGIN_STMT
  3703. vPortEnterCritical ();
  3704. # DEBUG BEGIN_STMT
  3705. xNumOfOverflows.112_1 ={v} xNumOfOverflows;
  3706. pxTimeOut_3(D)->xOverflowCount = xNumOfOverflows.112_1;
  3707. # DEBUG BEGIN_STMT
  3708. xTickCount.113_2 ={v} xTickCount;
  3709. pxTimeOut_3(D)->xTimeOnEntering = xTickCount.113_2;
  3710. # DEBUG BEGIN_STMT
  3711. vPortExitCritical ();
  3712. return;
  3713. }
  3714. vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue)
  3715. {
  3716. uint32_t ulNewBASEPRI;
  3717. uint32_t ulNewBASEPRI;
  3718. struct ListItem_t * const pxIndex;
  3719. struct List_t * const pxList;
  3720. struct List_t * const pxList;
  3721. struct TCB_t * pxUnblockedTCB;
  3722. long unsigned int uxSchedulerSuspended.109_1;
  3723. long unsigned int _2;
  3724. struct xLIST_ITEM * _3;
  3725. struct xLIST_ITEM * _4;
  3726. struct xLIST_ITEM * _5;
  3727. struct ListItem_t * _6;
  3728. long unsigned int _7;
  3729. long unsigned int _8;
  3730. struct xLIST_ITEM * _9;
  3731. struct xLIST_ITEM * _10;
  3732. struct xLIST_ITEM * _11;
  3733. struct ListItem_t * _12;
  3734. struct ListItem_t * _13;
  3735. long unsigned int _14;
  3736. long unsigned int _15;
  3737. long unsigned int _16;
  3738. long unsigned int uxTopReadyPriority.110_17;
  3739. struct xLIST_ITEM * _18;
  3740. struct xLIST_ITEM * _19;
  3741. struct List_t * _20;
  3742. long unsigned int _21;
  3743. long unsigned int _22;
  3744. struct TCB_t * pxCurrentTCB.111_23;
  3745. long unsigned int _24;
  3746. <bb 2> [local count: 214748]:
  3747. # DEBUG BEGIN_STMT
  3748. # DEBUG BEGIN_STMT
  3749. uxSchedulerSuspended.109_1 ={v} uxSchedulerSuspended;
  3750. if (uxSchedulerSuspended.109_1 == 0)
  3751. goto <bb 3>; [50.00%]
  3752. else
  3753. goto <bb 5>; [50.00%]
  3754. <bb 3> [local count: 107374]:
  3755. # DEBUG BEGIN_STMT
  3756. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3757. # DEBUG BEGIN_STMT
  3758. # DEBUG BEGIN_STMT
  3759. __asm__ __volatile__(" mov %0, %1
  3760. msr basepri, %0
  3761. isb
  3762. dsb
  3763. " : "=r" ulNewBASEPRI_54 : "i" 16 : "memory");
  3764. # DEBUG ulNewBASEPRI => ulNewBASEPRI_54
  3765. <bb 4> [local count: 1073741824]:
  3766. # DEBUG ulNewBASEPRI => NULL
  3767. # DEBUG BEGIN_STMT
  3768. # DEBUG BEGIN_STMT
  3769. # DEBUG BEGIN_STMT
  3770. <bb 17> [local count: 1073741824]:
  3771. goto <bb 4>; [100.00%]
  3772. <bb 5> [local count: 107374]:
  3773. # DEBUG BEGIN_STMT
  3774. # DEBUG BEGIN_STMT
  3775. _2 = xItemValue_30(D) | 2147483648;
  3776. pxEventListItem_31(D)->xItemValue = _2;
  3777. # DEBUG BEGIN_STMT
  3778. pxUnblockedTCB_33 = pxEventListItem_31(D)->pvOwner;
  3779. # DEBUG pxUnblockedTCB => pxUnblockedTCB_33
  3780. # DEBUG BEGIN_STMT
  3781. if (pxUnblockedTCB_33 == 0B)
  3782. goto <bb 6>; [30.00%]
  3783. else
  3784. goto <bb 8>; [70.00%]
  3785. <bb 6> [local count: 32212]:
  3786. # DEBUG BEGIN_STMT
  3787. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3788. # DEBUG BEGIN_STMT
  3789. # DEBUG BEGIN_STMT
  3790. __asm__ __volatile__(" mov %0, %1
  3791. msr basepri, %0
  3792. isb
  3793. dsb
  3794. " : "=r" ulNewBASEPRI_55 : "i" 16 : "memory");
  3795. # DEBUG ulNewBASEPRI => ulNewBASEPRI_55
  3796. <bb 7> [local count: 322122547]:
  3797. # DEBUG ulNewBASEPRI => NULL
  3798. # DEBUG BEGIN_STMT
  3799. # DEBUG BEGIN_STMT
  3800. # DEBUG BEGIN_STMT
  3801. <bb 18> [local count: 322122547]:
  3802. goto <bb 7>; [100.00%]
  3803. <bb 8> [local count: 75162]:
  3804. # DEBUG BEGIN_STMT
  3805. # DEBUG BEGIN_STMT
  3806. pxList_34 = pxEventListItem_31(D)->pvContainer;
  3807. # DEBUG pxList => pxList_34
  3808. # DEBUG BEGIN_STMT
  3809. _3 = pxEventListItem_31(D)->pxNext;
  3810. _4 = pxEventListItem_31(D)->pxPrevious;
  3811. _3->pxPrevious = _4;
  3812. # DEBUG BEGIN_STMT
  3813. _5 = pxEventListItem_31(D)->pxPrevious;
  3814. _5->pxNext = _3;
  3815. # DEBUG BEGIN_STMT
  3816. _6 = pxList_34->pxIndex;
  3817. if (_6 == pxEventListItem_31(D))
  3818. goto <bb 9>; [30.00%]
  3819. else
  3820. goto <bb 10>; [70.00%]
  3821. <bb 9> [local count: 22549]:
  3822. # DEBUG BEGIN_STMT
  3823. pxList_34->pxIndex = _5;
  3824. <bb 10> [local count: 75162]:
  3825. # DEBUG BEGIN_STMT
  3826. pxEventListItem_31(D)->pvContainer = 0B;
  3827. # DEBUG BEGIN_STMT
  3828. _7 ={v} pxList_34->uxNumberOfItems;
  3829. _8 = _7 + 4294967295;
  3830. pxList_34->uxNumberOfItems ={v} _8;
  3831. # DEBUG BEGIN_STMT
  3832. # DEBUG BEGIN_STMT
  3833. pxList_40 = pxUnblockedTCB_33->xStateListItem.pvContainer;
  3834. # DEBUG pxList => pxList_40
  3835. # DEBUG BEGIN_STMT
  3836. _9 = pxUnblockedTCB_33->xStateListItem.pxNext;
  3837. _10 = pxUnblockedTCB_33->xStateListItem.pxPrevious;
  3838. _9->pxPrevious = _10;
  3839. # DEBUG BEGIN_STMT
  3840. _11 = pxUnblockedTCB_33->xStateListItem.pxPrevious;
  3841. _11->pxNext = _9;
  3842. # DEBUG BEGIN_STMT
  3843. _12 = pxList_40->pxIndex;
  3844. _13 = &pxUnblockedTCB_33->xStateListItem;
  3845. if (_12 == _13)
  3846. goto <bb 11>; [30.00%]
  3847. else
  3848. goto <bb 12>; [70.00%]
  3849. <bb 11> [local count: 22549]:
  3850. # DEBUG BEGIN_STMT
  3851. pxList_40->pxIndex = _11;
  3852. <bb 12> [local count: 75162]:
  3853. # DEBUG BEGIN_STMT
  3854. # DEBUG BEGIN_STMT
  3855. _14 ={v} pxList_40->uxNumberOfItems;
  3856. _15 = _14 + 4294967295;
  3857. pxList_40->uxNumberOfItems ={v} _15;
  3858. # DEBUG BEGIN_STMT
  3859. # DEBUG BEGIN_STMT
  3860. # DEBUG BEGIN_STMT
  3861. _16 = pxUnblockedTCB_33->uxPriority;
  3862. uxTopReadyPriority.110_17 ={v} uxTopReadyPriority;
  3863. if (_16 > uxTopReadyPriority.110_17)
  3864. goto <bb 13>; [50.00%]
  3865. else
  3866. goto <bb 14>; [50.00%]
  3867. <bb 13> [local count: 37581]:
  3868. # DEBUG BEGIN_STMT
  3869. uxTopReadyPriority ={v} _16;
  3870. <bb 14> [local count: 75162]:
  3871. # DEBUG BEGIN_STMT
  3872. # DEBUG BEGIN_STMT
  3873. pxIndex_46 = pxReadyTasksLists[_16].pxIndex;
  3874. # DEBUG pxIndex => pxIndex_46
  3875. # DEBUG BEGIN_STMT
  3876. # DEBUG BEGIN_STMT
  3877. # DEBUG BEGIN_STMT
  3878. pxUnblockedTCB_33->xStateListItem.pxNext = pxIndex_46;
  3879. # DEBUG BEGIN_STMT
  3880. _18 = pxIndex_46->pxPrevious;
  3881. pxUnblockedTCB_33->xStateListItem.pxPrevious = _18;
  3882. # DEBUG BEGIN_STMT
  3883. _19 = pxIndex_46->pxPrevious;
  3884. _19->pxNext = _13;
  3885. # DEBUG BEGIN_STMT
  3886. pxIndex_46->pxPrevious = _13;
  3887. # DEBUG BEGIN_STMT
  3888. _20 = &pxReadyTasksLists[_16];
  3889. pxUnblockedTCB_33->xStateListItem.pvContainer = _20;
  3890. # DEBUG BEGIN_STMT
  3891. _21 ={v} pxReadyTasksLists[_16].uxNumberOfItems;
  3892. _22 = _21 + 1;
  3893. pxReadyTasksLists[_16].uxNumberOfItems ={v} _22;
  3894. # DEBUG BEGIN_STMT
  3895. # DEBUG BEGIN_STMT
  3896. # DEBUG BEGIN_STMT
  3897. pxCurrentTCB.111_23 ={v} pxCurrentTCB;
  3898. _24 = pxCurrentTCB.111_23->uxPriority;
  3899. if (_16 > _24)
  3900. goto <bb 15>; [50.00%]
  3901. else
  3902. goto <bb 16>; [50.00%]
  3903. <bb 15> [local count: 37581]:
  3904. # DEBUG BEGIN_STMT
  3905. xYieldPending ={v} 1;
  3906. <bb 16> [local count: 75162]:
  3907. return;
  3908. }
  3909. xTaskRemoveFromEventList (const struct List_t * const pxEventList)
  3910. {
  3911. uint32_t ulNewBASEPRI;
  3912. struct ListItem_t * const pxIndex;
  3913. struct ListItem_t * const pxIndex;
  3914. struct List_t * const pxList;
  3915. struct List_t * const pxList;
  3916. BaseType_t xReturn;
  3917. struct TCB_t * pxUnblockedTCB;
  3918. struct xLIST_ITEM * _1;
  3919. struct xLIST_ITEM * _2;
  3920. struct xLIST_ITEM * _3;
  3921. struct ListItem_t * _4;
  3922. struct ListItem_t * _5;
  3923. long unsigned int _6;
  3924. long unsigned int _7;
  3925. long unsigned int uxSchedulerSuspended.106_8;
  3926. struct xLIST_ITEM * _9;
  3927. struct xLIST_ITEM * _10;
  3928. struct xLIST_ITEM * _11;
  3929. struct ListItem_t * _12;
  3930. struct ListItem_t * _13;
  3931. long unsigned int _14;
  3932. long unsigned int _15;
  3933. long unsigned int _16;
  3934. long unsigned int uxTopReadyPriority.107_17;
  3935. struct xLIST_ITEM * _18;
  3936. struct xLIST_ITEM * _19;
  3937. struct List_t * _20;
  3938. long unsigned int _21;
  3939. long unsigned int _22;
  3940. struct xLIST_ITEM * _23;
  3941. struct xLIST_ITEM * _24;
  3942. long unsigned int _25;
  3943. long unsigned int _26;
  3944. long unsigned int _27;
  3945. struct TCB_t * pxCurrentTCB.108_28;
  3946. long unsigned int _29;
  3947. <bb 2> [local count: 357913]:
  3948. # DEBUG BEGIN_STMT
  3949. # DEBUG BEGIN_STMT
  3950. # DEBUG BEGIN_STMT
  3951. _1 = pxEventList_37(D)->xListEnd.pxNext;
  3952. pxUnblockedTCB_38 = _1->pvOwner;
  3953. # DEBUG pxUnblockedTCB => pxUnblockedTCB_38
  3954. # DEBUG BEGIN_STMT
  3955. if (pxUnblockedTCB_38 == 0B)
  3956. goto <bb 3>; [30.00%]
  3957. else
  3958. goto <bb 5>; [70.00%]
  3959. <bb 3> [local count: 107374]:
  3960. # DEBUG BEGIN_STMT
  3961. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3962. # DEBUG BEGIN_STMT
  3963. # DEBUG BEGIN_STMT
  3964. __asm__ __volatile__(" mov %0, %1
  3965. msr basepri, %0
  3966. isb
  3967. dsb
  3968. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  3969. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  3970. <bb 4> [local count: 1073741824]:
  3971. # DEBUG ulNewBASEPRI => NULL
  3972. # DEBUG BEGIN_STMT
  3973. # DEBUG BEGIN_STMT
  3974. # DEBUG BEGIN_STMT
  3975. <bb 17> [local count: 1073741824]:
  3976. goto <bb 4>; [100.00%]
  3977. <bb 5> [local count: 250539]:
  3978. # DEBUG BEGIN_STMT
  3979. # DEBUG BEGIN_STMT
  3980. pxList_39 = pxUnblockedTCB_38->xEventListItem.pvContainer;
  3981. # DEBUG pxList => pxList_39
  3982. # DEBUG BEGIN_STMT
  3983. _2 = pxUnblockedTCB_38->xEventListItem.pxNext;
  3984. _3 = pxUnblockedTCB_38->xEventListItem.pxPrevious;
  3985. _2->pxPrevious = _3;
  3986. # DEBUG BEGIN_STMT
  3987. _3->pxNext = _2;
  3988. # DEBUG BEGIN_STMT
  3989. _4 = pxList_39->pxIndex;
  3990. _5 = &pxUnblockedTCB_38->xEventListItem;
  3991. if (_4 == _5)
  3992. goto <bb 6>; [30.00%]
  3993. else
  3994. goto <bb 7>; [70.00%]
  3995. <bb 6> [local count: 75162]:
  3996. # DEBUG BEGIN_STMT
  3997. pxList_39->pxIndex = _3;
  3998. <bb 7> [local count: 250539]:
  3999. # DEBUG BEGIN_STMT
  4000. pxUnblockedTCB_38->xEventListItem.pvContainer = 0B;
  4001. # DEBUG BEGIN_STMT
  4002. _6 ={v} pxList_39->uxNumberOfItems;
  4003. _7 = _6 + 4294967295;
  4004. pxList_39->uxNumberOfItems ={v} _7;
  4005. # DEBUG BEGIN_STMT
  4006. # DEBUG BEGIN_STMT
  4007. uxSchedulerSuspended.106_8 ={v} uxSchedulerSuspended;
  4008. if (uxSchedulerSuspended.106_8 == 0)
  4009. goto <bb 8>; [50.00%]
  4010. else
  4011. goto <bb 13>; [50.00%]
  4012. <bb 8> [local count: 125270]:
  4013. # DEBUG BEGIN_STMT
  4014. pxList_52 = pxUnblockedTCB_38->xStateListItem.pvContainer;
  4015. # DEBUG pxList => pxList_52
  4016. # DEBUG BEGIN_STMT
  4017. _9 = pxUnblockedTCB_38->xStateListItem.pxNext;
  4018. _10 = pxUnblockedTCB_38->xStateListItem.pxPrevious;
  4019. _9->pxPrevious = _10;
  4020. # DEBUG BEGIN_STMT
  4021. _11 = pxUnblockedTCB_38->xStateListItem.pxPrevious;
  4022. _11->pxNext = _9;
  4023. # DEBUG BEGIN_STMT
  4024. _12 = pxList_52->pxIndex;
  4025. _13 = &pxUnblockedTCB_38->xStateListItem;
  4026. if (_12 == _13)
  4027. goto <bb 9>; [30.00%]
  4028. else
  4029. goto <bb 10>; [70.00%]
  4030. <bb 9> [local count: 37581]:
  4031. # DEBUG BEGIN_STMT
  4032. pxList_52->pxIndex = _11;
  4033. <bb 10> [local count: 125270]:
  4034. # DEBUG BEGIN_STMT
  4035. # DEBUG BEGIN_STMT
  4036. _14 ={v} pxList_52->uxNumberOfItems;
  4037. _15 = _14 + 4294967295;
  4038. pxList_52->uxNumberOfItems ={v} _15;
  4039. # DEBUG BEGIN_STMT
  4040. # DEBUG BEGIN_STMT
  4041. # DEBUG BEGIN_STMT
  4042. _16 = pxUnblockedTCB_38->uxPriority;
  4043. uxTopReadyPriority.107_17 ={v} uxTopReadyPriority;
  4044. if (_16 > uxTopReadyPriority.107_17)
  4045. goto <bb 11>; [50.00%]
  4046. else
  4047. goto <bb 12>; [50.00%]
  4048. <bb 11> [local count: 62635]:
  4049. # DEBUG BEGIN_STMT
  4050. uxTopReadyPriority ={v} _16;
  4051. <bb 12> [local count: 125270]:
  4052. # DEBUG BEGIN_STMT
  4053. # DEBUG BEGIN_STMT
  4054. pxIndex_58 = pxReadyTasksLists[_16].pxIndex;
  4055. # DEBUG pxIndex => pxIndex_58
  4056. # DEBUG BEGIN_STMT
  4057. # DEBUG BEGIN_STMT
  4058. # DEBUG BEGIN_STMT
  4059. pxUnblockedTCB_38->xStateListItem.pxNext = pxIndex_58;
  4060. # DEBUG BEGIN_STMT
  4061. _18 = pxIndex_58->pxPrevious;
  4062. pxUnblockedTCB_38->xStateListItem.pxPrevious = _18;
  4063. # DEBUG BEGIN_STMT
  4064. _19 = pxIndex_58->pxPrevious;
  4065. _19->pxNext = _13;
  4066. # DEBUG BEGIN_STMT
  4067. pxIndex_58->pxPrevious = _13;
  4068. # DEBUG BEGIN_STMT
  4069. _20 = &pxReadyTasksLists[_16];
  4070. pxUnblockedTCB_38->xStateListItem.pvContainer = _20;
  4071. # DEBUG BEGIN_STMT
  4072. _21 ={v} pxReadyTasksLists[_16].uxNumberOfItems;
  4073. _22 = _21 + 1;
  4074. pxReadyTasksLists[_16].uxNumberOfItems ={v} _22;
  4075. # DEBUG BEGIN_STMT
  4076. # DEBUG BEGIN_STMT
  4077. goto <bb 14>; [100.00%]
  4078. <bb 13> [local count: 125270]:
  4079. # DEBUG BEGIN_STMT
  4080. pxIndex_45 = xPendingReadyList.pxIndex;
  4081. # DEBUG pxIndex => pxIndex_45
  4082. # DEBUG BEGIN_STMT
  4083. # DEBUG BEGIN_STMT
  4084. # DEBUG BEGIN_STMT
  4085. pxUnblockedTCB_38->xEventListItem.pxNext = pxIndex_45;
  4086. # DEBUG BEGIN_STMT
  4087. _23 = pxIndex_45->pxPrevious;
  4088. pxUnblockedTCB_38->xEventListItem.pxPrevious = _23;
  4089. # DEBUG BEGIN_STMT
  4090. _24 = pxIndex_45->pxPrevious;
  4091. _24->pxNext = _5;
  4092. # DEBUG BEGIN_STMT
  4093. pxIndex_45->pxPrevious = _5;
  4094. # DEBUG BEGIN_STMT
  4095. pxUnblockedTCB_38->xEventListItem.pvContainer = &xPendingReadyList;
  4096. # DEBUG BEGIN_STMT
  4097. _25 ={v} xPendingReadyList.uxNumberOfItems;
  4098. _26 = _25 + 1;
  4099. xPendingReadyList.uxNumberOfItems ={v} _26;
  4100. <bb 14> [local count: 250539]:
  4101. # DEBUG BEGIN_STMT
  4102. # DEBUG BEGIN_STMT
  4103. _27 = pxUnblockedTCB_38->uxPriority;
  4104. pxCurrentTCB.108_28 ={v} pxCurrentTCB;
  4105. _29 = pxCurrentTCB.108_28->uxPriority;
  4106. if (_27 > _29)
  4107. goto <bb 15>; [50.00%]
  4108. else
  4109. goto <bb 16>; [50.00%]
  4110. <bb 15> [local count: 125270]:
  4111. # DEBUG BEGIN_STMT
  4112. # DEBUG xReturn => 1
  4113. # DEBUG BEGIN_STMT
  4114. xYieldPending ={v} 1;
  4115. <bb 16> [local count: 250539]:
  4116. # xReturn_30 = PHI <1(15), 0(14)>
  4117. # DEBUG xReturn => xReturn_30
  4118. # DEBUG BEGIN_STMT
  4119. return xReturn_30;
  4120. }
  4121. vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
  4122. {
  4123. uint32_t ulNewBASEPRI;
  4124. struct ListItem_t * const pxIndex;
  4125. struct TCB_t * pxCurrentTCB.101_1;
  4126. struct TCB_t * pxCurrentTCB.102_2;
  4127. struct xLIST_ITEM * _3;
  4128. struct TCB_t * pxCurrentTCB.103_4;
  4129. struct xLIST_ITEM * _5;
  4130. struct ListItem_t * _6;
  4131. struct TCB_t * pxCurrentTCB.104_7;
  4132. struct ListItem_t * _8;
  4133. struct TCB_t * pxCurrentTCB.105_9;
  4134. long unsigned int _10;
  4135. long unsigned int _11;
  4136. <bb 2> [local count: 357913]:
  4137. # DEBUG BEGIN_STMT
  4138. if (pxEventList_13(D) == 0B)
  4139. goto <bb 3>; [30.00%]
  4140. else
  4141. goto <bb 5>; [70.00%]
  4142. <bb 3> [local count: 107374]:
  4143. # DEBUG BEGIN_STMT
  4144. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4145. # DEBUG BEGIN_STMT
  4146. # DEBUG BEGIN_STMT
  4147. __asm__ __volatile__(" mov %0, %1
  4148. msr basepri, %0
  4149. isb
  4150. dsb
  4151. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  4152. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  4153. <bb 4> [local count: 1073741824]:
  4154. # DEBUG ulNewBASEPRI => NULL
  4155. # DEBUG BEGIN_STMT
  4156. # DEBUG BEGIN_STMT
  4157. # DEBUG BEGIN_STMT
  4158. <bb 8> [local count: 1073741824]:
  4159. goto <bb 4>; [100.00%]
  4160. <bb 5> [local count: 250539]:
  4161. # DEBUG BEGIN_STMT
  4162. # DEBUG BEGIN_STMT
  4163. pxIndex_15 = pxEventList_13(D)->pxIndex;
  4164. # DEBUG pxIndex => pxIndex_15
  4165. # DEBUG BEGIN_STMT
  4166. # DEBUG BEGIN_STMT
  4167. # DEBUG BEGIN_STMT
  4168. pxCurrentTCB.101_1 ={v} pxCurrentTCB;
  4169. pxCurrentTCB.101_1->xEventListItem.pxNext = pxIndex_15;
  4170. # DEBUG BEGIN_STMT
  4171. pxCurrentTCB.102_2 ={v} pxCurrentTCB;
  4172. _3 = pxIndex_15->pxPrevious;
  4173. pxCurrentTCB.102_2->xEventListItem.pxPrevious = _3;
  4174. # DEBUG BEGIN_STMT
  4175. pxCurrentTCB.103_4 ={v} pxCurrentTCB;
  4176. _5 = pxIndex_15->pxPrevious;
  4177. _6 = &pxCurrentTCB.103_4->xEventListItem;
  4178. _5->pxNext = _6;
  4179. # DEBUG BEGIN_STMT
  4180. pxCurrentTCB.104_7 ={v} pxCurrentTCB;
  4181. _8 = &pxCurrentTCB.104_7->xEventListItem;
  4182. pxIndex_15->pxPrevious = _8;
  4183. # DEBUG BEGIN_STMT
  4184. pxCurrentTCB.105_9 ={v} pxCurrentTCB;
  4185. pxCurrentTCB.105_9->xEventListItem.pvContainer = pxEventList_13(D);
  4186. # DEBUG BEGIN_STMT
  4187. _10 ={v} pxEventList_13(D)->uxNumberOfItems;
  4188. _11 = _10 + 1;
  4189. pxEventList_13(D)->uxNumberOfItems ={v} _11;
  4190. # DEBUG BEGIN_STMT
  4191. # DEBUG BEGIN_STMT
  4192. if (xWaitIndefinitely_22(D) != 0)
  4193. goto <bb 6>; [50.00%]
  4194. else
  4195. goto <bb 7>; [50.00%]
  4196. <bb 6> [local count: 125270]:
  4197. # DEBUG BEGIN_STMT
  4198. # DEBUG xTicksToWait => 4294967295
  4199. <bb 7> [local count: 250539]:
  4200. # xTicksToWait_12 = PHI <xTicksToWait_23(D)(5), 4294967295(6)>
  4201. # DEBUG xTicksToWait => xTicksToWait_12
  4202. # DEBUG BEGIN_STMT
  4203. # DEBUG BEGIN_STMT
  4204. prvAddCurrentTaskToDelayedList (xTicksToWait_12, xWaitIndefinitely_22(D));
  4205. return;
  4206. }
  4207. vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
  4208. {
  4209. uint32_t ulNewBASEPRI;
  4210. uint32_t ulNewBASEPRI;
  4211. struct ListItem_t * const pxIndex;
  4212. long unsigned int uxSchedulerSuspended.94_1;
  4213. struct TCB_t * pxCurrentTCB.95_2;
  4214. long unsigned int _3;
  4215. struct TCB_t * pxCurrentTCB.96_4;
  4216. struct TCB_t * pxCurrentTCB.97_5;
  4217. struct xLIST_ITEM * _6;
  4218. struct TCB_t * pxCurrentTCB.98_7;
  4219. struct xLIST_ITEM * _8;
  4220. struct ListItem_t * _9;
  4221. struct TCB_t * pxCurrentTCB.99_10;
  4222. struct ListItem_t * _11;
  4223. struct TCB_t * pxCurrentTCB.100_12;
  4224. long unsigned int _13;
  4225. long unsigned int _14;
  4226. <bb 2> [local count: 228942]:
  4227. # DEBUG BEGIN_STMT
  4228. if (pxEventList_15(D) == 0B)
  4229. goto <bb 3>; [30.00%]
  4230. else
  4231. goto <bb 5>; [70.00%]
  4232. <bb 3> [local count: 68683]:
  4233. # DEBUG BEGIN_STMT
  4234. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4235. # DEBUG BEGIN_STMT
  4236. # DEBUG BEGIN_STMT
  4237. __asm__ __volatile__(" mov %0, %1
  4238. msr basepri, %0
  4239. isb
  4240. dsb
  4241. " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  4242. # DEBUG ulNewBASEPRI => ulNewBASEPRI_28
  4243. <bb 4> [local count: 686828460]:
  4244. # DEBUG ulNewBASEPRI => NULL
  4245. # DEBUG BEGIN_STMT
  4246. # DEBUG BEGIN_STMT
  4247. # DEBUG BEGIN_STMT
  4248. <bb 9> [local count: 686828460]:
  4249. goto <bb 4>; [100.00%]
  4250. <bb 5> [local count: 160260]:
  4251. # DEBUG BEGIN_STMT
  4252. # DEBUG BEGIN_STMT
  4253. uxSchedulerSuspended.94_1 ={v} uxSchedulerSuspended;
  4254. if (uxSchedulerSuspended.94_1 == 0)
  4255. goto <bb 6>; [67.00%]
  4256. else
  4257. goto <bb 8>; [33.00%]
  4258. <bb 6> [local count: 107374]:
  4259. # DEBUG BEGIN_STMT
  4260. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4261. # DEBUG BEGIN_STMT
  4262. # DEBUG BEGIN_STMT
  4263. __asm__ __volatile__(" mov %0, %1
  4264. msr basepri, %0
  4265. isb
  4266. dsb
  4267. " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  4268. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  4269. <bb 7> [local count: 1073741824]:
  4270. # DEBUG ulNewBASEPRI => NULL
  4271. # DEBUG BEGIN_STMT
  4272. # DEBUG BEGIN_STMT
  4273. # DEBUG BEGIN_STMT
  4274. <bb 10> [local count: 1073741824]:
  4275. goto <bb 7>; [100.00%]
  4276. <bb 8> [local count: 52886]:
  4277. # DEBUG BEGIN_STMT
  4278. # DEBUG BEGIN_STMT
  4279. pxCurrentTCB.95_2 ={v} pxCurrentTCB;
  4280. _3 = xItemValue_17(D) | 2147483648;
  4281. pxCurrentTCB.95_2->xEventListItem.xItemValue = _3;
  4282. # DEBUG BEGIN_STMT
  4283. pxIndex_19 = pxEventList_15(D)->pxIndex;
  4284. # DEBUG pxIndex => pxIndex_19
  4285. # DEBUG BEGIN_STMT
  4286. # DEBUG BEGIN_STMT
  4287. # DEBUG BEGIN_STMT
  4288. pxCurrentTCB.96_4 ={v} pxCurrentTCB;
  4289. pxCurrentTCB.96_4->xEventListItem.pxNext = pxIndex_19;
  4290. # DEBUG BEGIN_STMT
  4291. pxCurrentTCB.97_5 ={v} pxCurrentTCB;
  4292. _6 = pxIndex_19->pxPrevious;
  4293. pxCurrentTCB.97_5->xEventListItem.pxPrevious = _6;
  4294. # DEBUG BEGIN_STMT
  4295. pxCurrentTCB.98_7 ={v} pxCurrentTCB;
  4296. _8 = pxIndex_19->pxPrevious;
  4297. _9 = &pxCurrentTCB.98_7->xEventListItem;
  4298. _8->pxNext = _9;
  4299. # DEBUG BEGIN_STMT
  4300. pxCurrentTCB.99_10 ={v} pxCurrentTCB;
  4301. _11 = &pxCurrentTCB.99_10->xEventListItem;
  4302. pxIndex_19->pxPrevious = _11;
  4303. # DEBUG BEGIN_STMT
  4304. pxCurrentTCB.100_12 ={v} pxCurrentTCB;
  4305. pxCurrentTCB.100_12->xEventListItem.pvContainer = pxEventList_15(D);
  4306. # DEBUG BEGIN_STMT
  4307. _13 ={v} pxEventList_15(D)->uxNumberOfItems;
  4308. _14 = _13 + 1;
  4309. pxEventList_15(D)->uxNumberOfItems ={v} _14;
  4310. # DEBUG BEGIN_STMT
  4311. # DEBUG BEGIN_STMT
  4312. prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1);
  4313. return;
  4314. }
  4315. vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait)
  4316. {
  4317. uint32_t ulNewBASEPRI;
  4318. struct TCB_t * pxCurrentTCB.93_1;
  4319. struct ListItem_t * _2;
  4320. <bb 2> [local count: 230763]:
  4321. # DEBUG BEGIN_STMT
  4322. if (pxEventList_3(D) == 0B)
  4323. goto <bb 3>; [46.53%]
  4324. else
  4325. goto <bb 5>; [53.47%]
  4326. <bb 3> [local count: 107374]:
  4327. # DEBUG BEGIN_STMT
  4328. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4329. # DEBUG BEGIN_STMT
  4330. # DEBUG BEGIN_STMT
  4331. __asm__ __volatile__(" mov %0, %1
  4332. msr basepri, %0
  4333. isb
  4334. dsb
  4335. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  4336. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  4337. <bb 4> [local count: 1073741824]:
  4338. # DEBUG ulNewBASEPRI => NULL
  4339. # DEBUG BEGIN_STMT
  4340. # DEBUG BEGIN_STMT
  4341. # DEBUG BEGIN_STMT
  4342. <bb 6> [local count: 1073741824]:
  4343. goto <bb 4>; [100.00%]
  4344. <bb 5> [local count: 123389]:
  4345. # DEBUG BEGIN_STMT
  4346. # DEBUG BEGIN_STMT
  4347. pxCurrentTCB.93_1 ={v} pxCurrentTCB;
  4348. _2 = &pxCurrentTCB.93_1->xEventListItem;
  4349. vListInsert (pxEventList_3(D), _2);
  4350. # DEBUG BEGIN_STMT
  4351. prvAddCurrentTaskToDelayedList (xTicksToWait_6(D), 1);
  4352. return;
  4353. }
  4354. __attribute__((used))
  4355. vTaskSwitchContext ()
  4356. {
  4357. UBaseType_t uxTopPriority;
  4358. long unsigned int uxSchedulerSuspended.92_1;
  4359. long unsigned int _2;
  4360. struct ListItem_t * _3;
  4361. struct xLIST_ITEM * _4;
  4362. struct MiniListItem_t * _6;
  4363. struct xLIST_ITEM * _8;
  4364. struct ListItem_t * _9;
  4365. void * _10;
  4366. <bb 2> [local count: 441995]:
  4367. # DEBUG BEGIN_STMT
  4368. uxSchedulerSuspended.92_1 ={v} uxSchedulerSuspended;
  4369. if (uxSchedulerSuspended.92_1 != 0)
  4370. goto <bb 3>; [50.00%]
  4371. else
  4372. goto <bb 4>; [50.00%]
  4373. <bb 3> [local count: 220997]:
  4374. # DEBUG BEGIN_STMT
  4375. xYieldPending ={v} 1;
  4376. goto <bb 12>; [100.00%]
  4377. <bb 4> [local count: 220997]:
  4378. # DEBUG BEGIN_STMT
  4379. xYieldPending ={v} 0;
  4380. # DEBUG BEGIN_STMT
  4381. # DEBUG BEGIN_STMT
  4382. # DEBUG BEGIN_STMT
  4383. uxTopPriority_15 ={v} uxTopReadyPriority;
  4384. # DEBUG uxTopPriority => uxTopPriority_15
  4385. # DEBUG BEGIN_STMT
  4386. goto <bb 8>; [100.00%]
  4387. <bb 5> [local count: 1952255]:
  4388. # DEBUG BEGIN_STMT
  4389. if (uxTopPriority_11 == 0)
  4390. goto <bb 6>; [5.50%]
  4391. else
  4392. goto <bb 7>; [94.50%]
  4393. <bb 6> [local count: 107374]:
  4394. vTaskSwitchContext.part.0 ();
  4395. <bb 7> [local count: 1844881]:
  4396. # DEBUG BEGIN_STMT
  4397. # DEBUG BEGIN_STMT
  4398. uxTopPriority_21 = uxTopPriority_11 + 4294967295;
  4399. # DEBUG uxTopPriority => uxTopPriority_21
  4400. <bb 8> [local count: 2065878]:
  4401. # uxTopPriority_11 = PHI <uxTopPriority_15(4), uxTopPriority_21(7)>
  4402. # DEBUG uxTopPriority => uxTopPriority_11
  4403. # DEBUG BEGIN_STMT
  4404. _2 ={v} pxReadyTasksLists[uxTopPriority_11].uxNumberOfItems;
  4405. if (_2 == 0)
  4406. goto <bb 5>; [94.50%]
  4407. else
  4408. goto <bb 9>; [5.50%]
  4409. <bb 9> [local count: 113623]:
  4410. # uxTopPriority_5 = PHI <uxTopPriority_11(8)>
  4411. # DEBUG BEGIN_STMT
  4412. # DEBUG D#6 => &pxReadyTasksLists[uxTopPriority_5]
  4413. # DEBUG pxConstList => D#6
  4414. # DEBUG BEGIN_STMT
  4415. _3 = MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex;
  4416. _4 = _3->pxNext;
  4417. MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex = _4;
  4418. # DEBUG BEGIN_STMT
  4419. _6 = &MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].xListEnd;
  4420. if (_4 == _6)
  4421. goto <bb 10>; [30.00%]
  4422. else
  4423. goto <bb 11>; [70.00%]
  4424. <bb 10> [local count: 34087]:
  4425. # DEBUG BEGIN_STMT
  4426. _8 = MEM[(struct ListItem_t *)_4].pxNext;
  4427. MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex = _8;
  4428. <bb 11> [local count: 113623]:
  4429. # DEBUG BEGIN_STMT
  4430. _9 = MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex;
  4431. _10 = _9->pvOwner;
  4432. pxCurrentTCB ={v} _10;
  4433. # DEBUG BEGIN_STMT
  4434. # DEBUG BEGIN_STMT
  4435. uxTopReadyPriority ={v} uxTopPriority_5;
  4436. <bb 12> [local count: 334621]:
  4437. # DEBUG BEGIN_STMT
  4438. # DEBUG BEGIN_STMT
  4439. return;
  4440. }
  4441. xTaskIncrementTick ()
  4442. {
  4443. BaseType_t xSwitchRequired;
  4444. long unsigned int uxSchedulerSuspended.79_1;
  4445. long unsigned int xPendedTicks.91_5;
  4446. long unsigned int _6;
  4447. <bb 2> [local count: 641039]:
  4448. # DEBUG BEGIN_STMT
  4449. # DEBUG BEGIN_STMT
  4450. # DEBUG BEGIN_STMT
  4451. # DEBUG xSwitchRequired => 0
  4452. # DEBUG BEGIN_STMT
  4453. # DEBUG BEGIN_STMT
  4454. uxSchedulerSuspended.79_1 ={v} uxSchedulerSuspended;
  4455. if (uxSchedulerSuspended.79_1 == 0)
  4456. goto <bb 3>; [50.00%]
  4457. else
  4458. goto <bb 4>; [50.00%]
  4459. <bb 3> [local count: 320520]:
  4460. xSwitchRequired_2 = xTaskIncrementTick.part.0 ();
  4461. goto <bb 5>; [100.00%]
  4462. <bb 4> [local count: 320519]:
  4463. # DEBUG BEGIN_STMT
  4464. xPendedTicks.91_5 ={v} xPendedTicks;
  4465. _6 = xPendedTicks.91_5 + 1;
  4466. xPendedTicks ={v} _6;
  4467. <bb 5> [local count: 533665]:
  4468. # xSwitchRequired_7 = PHI <xSwitchRequired_2(3), 0(4)>
  4469. # DEBUG xSwitchRequired => xSwitchRequired_7
  4470. # DEBUG BEGIN_STMT
  4471. return xSwitchRequired_7;
  4472. }
  4473. xTaskAbortDelay (struct tskTaskControlBlock * xTask)
  4474. {
  4475. uint32_t ulNewBASEPRI;
  4476. struct ListItem_t * const pxIndex;
  4477. BaseType_t xReturn;
  4478. <unnamed type> _1;
  4479. struct ListItem_t * _2;
  4480. struct xLIST * _3;
  4481. struct ListItem_t * _4;
  4482. long unsigned int _5;
  4483. long unsigned int uxTopReadyPriority.77_6;
  4484. struct xLIST_ITEM * _7;
  4485. struct xLIST_ITEM * _8;
  4486. struct List_t * _9;
  4487. long unsigned int _10;
  4488. long unsigned int _11;
  4489. struct TCB_t * pxCurrentTCB.78_12;
  4490. long unsigned int _13;
  4491. <bb 2> [local count: 230763]:
  4492. # DEBUG BEGIN_STMT
  4493. # DEBUG pxTCB => xTask_18(D)
  4494. # DEBUG BEGIN_STMT
  4495. # DEBUG BEGIN_STMT
  4496. if (xTask_18(D) == 0B)
  4497. goto <bb 3>; [46.53%]
  4498. else
  4499. goto <bb 5>; [53.47%]
  4500. <bb 3> [local count: 107374]:
  4501. # DEBUG BEGIN_STMT
  4502. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4503. # DEBUG BEGIN_STMT
  4504. # DEBUG BEGIN_STMT
  4505. __asm__ __volatile__(" mov %0, %1
  4506. msr basepri, %0
  4507. isb
  4508. dsb
  4509. " : "=r" ulNewBASEPRI_37 : "i" 16 : "memory");
  4510. # DEBUG ulNewBASEPRI => ulNewBASEPRI_37
  4511. <bb 4> [local count: 1073741824]:
  4512. # DEBUG ulNewBASEPRI => NULL
  4513. # DEBUG BEGIN_STMT
  4514. # DEBUG BEGIN_STMT
  4515. # DEBUG BEGIN_STMT
  4516. <bb 13> [local count: 1073741824]:
  4517. goto <bb 4>; [100.00%]
  4518. <bb 5> [local count: 123389]:
  4519. # DEBUG BEGIN_STMT
  4520. # DEBUG BEGIN_STMT
  4521. vTaskSuspendAll ();
  4522. # DEBUG BEGIN_STMT
  4523. _1 = eTaskGetState (xTask_18(D));
  4524. if (_1 == 2)
  4525. goto <bb 6>; [20.24%]
  4526. else
  4527. goto <bb 12>; [79.76%]
  4528. <bb 6> [local count: 24974]:
  4529. # DEBUG BEGIN_STMT
  4530. # DEBUG xReturn => 1
  4531. # DEBUG BEGIN_STMT
  4532. _2 = &MEM[(struct TCB_t *)xTask_18(D)].xStateListItem;
  4533. uxListRemove (_2);
  4534. # DEBUG BEGIN_STMT
  4535. vPortEnterCritical ();
  4536. # DEBUG BEGIN_STMT
  4537. _3 = MEM[(struct TCB_t *)xTask_18(D)].xEventListItem.pvContainer;
  4538. if (_3 != 0B)
  4539. goto <bb 7>; [53.47%]
  4540. else
  4541. goto <bb 8>; [46.53%]
  4542. <bb 7> [local count: 13354]:
  4543. # DEBUG BEGIN_STMT
  4544. _4 = &MEM[(struct TCB_t *)xTask_18(D)].xEventListItem;
  4545. uxListRemove (_4);
  4546. # DEBUG BEGIN_STMT
  4547. MEM[(struct TCB_t *)xTask_18(D)].ucDelayAborted = 1;
  4548. <bb 8> [local count: 24974]:
  4549. # DEBUG BEGIN_STMT
  4550. # DEBUG BEGIN_STMT
  4551. vPortExitCritical ();
  4552. # DEBUG BEGIN_STMT
  4553. # DEBUG BEGIN_STMT
  4554. _5 = MEM[(struct TCB_t *)xTask_18(D)].uxPriority;
  4555. uxTopReadyPriority.77_6 ={v} uxTopReadyPriority;
  4556. if (_5 > uxTopReadyPriority.77_6)
  4557. goto <bb 9>; [50.00%]
  4558. else
  4559. goto <bb 10>; [50.00%]
  4560. <bb 9> [local count: 12487]:
  4561. # DEBUG BEGIN_STMT
  4562. uxTopReadyPriority ={v} _5;
  4563. <bb 10> [local count: 24974]:
  4564. # DEBUG BEGIN_STMT
  4565. # DEBUG BEGIN_STMT
  4566. pxIndex_28 = pxReadyTasksLists[_5].pxIndex;
  4567. # DEBUG pxIndex => pxIndex_28
  4568. # DEBUG BEGIN_STMT
  4569. # DEBUG BEGIN_STMT
  4570. # DEBUG BEGIN_STMT
  4571. MEM[(struct TCB_t *)xTask_18(D)].xStateListItem.pxNext = pxIndex_28;
  4572. # DEBUG BEGIN_STMT
  4573. _7 = pxIndex_28->pxPrevious;
  4574. MEM[(struct TCB_t *)xTask_18(D)].xStateListItem.pxPrevious = _7;
  4575. # DEBUG BEGIN_STMT
  4576. _8 = pxIndex_28->pxPrevious;
  4577. _8->pxNext = _2;
  4578. # DEBUG BEGIN_STMT
  4579. pxIndex_28->pxPrevious = _2;
  4580. # DEBUG BEGIN_STMT
  4581. _9 = &pxReadyTasksLists[_5];
  4582. MEM[(struct TCB_t *)xTask_18(D)].xStateListItem.pvContainer = _9;
  4583. # DEBUG BEGIN_STMT
  4584. _10 ={v} pxReadyTasksLists[_5].uxNumberOfItems;
  4585. _11 = _10 + 1;
  4586. pxReadyTasksLists[_5].uxNumberOfItems ={v} _11;
  4587. # DEBUG BEGIN_STMT
  4588. # DEBUG BEGIN_STMT
  4589. # DEBUG BEGIN_STMT
  4590. pxCurrentTCB.78_12 ={v} pxCurrentTCB;
  4591. _13 = pxCurrentTCB.78_12->uxPriority;
  4592. if (_5 > _13)
  4593. goto <bb 11>; [50.00%]
  4594. else
  4595. goto <bb 12>; [50.00%]
  4596. <bb 11> [local count: 12487]:
  4597. # DEBUG BEGIN_STMT
  4598. xYieldPending ={v} 1;
  4599. <bb 12> [local count: 123389]:
  4600. # xReturn_14 = PHI <1(11), 0(5), 1(10)>
  4601. # DEBUG xReturn => xReturn_14
  4602. # DEBUG BEGIN_STMT
  4603. xTaskResumeAll ();
  4604. # DEBUG BEGIN_STMT
  4605. return xReturn_14;
  4606. }
  4607. xTaskCatchUpTicks (TickType_t xTicksToCatchUp)
  4608. {
  4609. uint32_t ulNewBASEPRI;
  4610. BaseType_t xYieldOccurred;
  4611. long unsigned int uxSchedulerSuspended.75_1;
  4612. long unsigned int xPendedTicks.76_2;
  4613. long unsigned int _3;
  4614. <bb 2> [local count: 160260]:
  4615. # DEBUG BEGIN_STMT
  4616. # DEBUG BEGIN_STMT
  4617. uxSchedulerSuspended.75_1 ={v} uxSchedulerSuspended;
  4618. if (uxSchedulerSuspended.75_1 != 0)
  4619. goto <bb 3>; [67.00%]
  4620. else
  4621. goto <bb 5>; [33.00%]
  4622. <bb 3> [local count: 107374]:
  4623. # DEBUG BEGIN_STMT
  4624. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4625. # DEBUG BEGIN_STMT
  4626. # DEBUG BEGIN_STMT
  4627. __asm__ __volatile__(" mov %0, %1
  4628. msr basepri, %0
  4629. isb
  4630. dsb
  4631. " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory");
  4632. # DEBUG ulNewBASEPRI => ulNewBASEPRI_10
  4633. <bb 4> [local count: 1073741824]:
  4634. # DEBUG ulNewBASEPRI => NULL
  4635. # DEBUG BEGIN_STMT
  4636. # DEBUG BEGIN_STMT
  4637. # DEBUG BEGIN_STMT
  4638. <bb 6> [local count: 1073741824]:
  4639. goto <bb 4>; [100.00%]
  4640. <bb 5> [local count: 52886]:
  4641. # DEBUG BEGIN_STMT
  4642. # DEBUG BEGIN_STMT
  4643. vTaskSuspendAll ();
  4644. # DEBUG BEGIN_STMT
  4645. xPendedTicks.76_2 ={v} xPendedTicks;
  4646. _3 = xPendedTicks.76_2 + xTicksToCatchUp_6(D);
  4647. xPendedTicks ={v} _3;
  4648. # DEBUG BEGIN_STMT
  4649. xYieldOccurred_9 = xTaskResumeAll ();
  4650. # DEBUG xYieldOccurred => xYieldOccurred_9
  4651. # DEBUG BEGIN_STMT
  4652. return xYieldOccurred_9;
  4653. }
  4654. uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime)
  4655. {
  4656. UBaseType_t uxQueue;
  4657. UBaseType_t uxTask;
  4658. long unsigned int uxCurrentNumberOfTasks.72_1;
  4659. long unsigned int _2;
  4660. struct TaskStatus_t * _3;
  4661. struct List_t * _4;
  4662. long unsigned int _5;
  4663. struct TaskStatus_t * _6;
  4664. struct List_t * pxDelayedTaskList.73_7;
  4665. long unsigned int _8;
  4666. struct TaskStatus_t * _9;
  4667. struct List_t * pxOverflowDelayedTaskList.74_10;
  4668. long unsigned int _11;
  4669. struct TaskStatus_t * _12;
  4670. long unsigned int _13;
  4671. struct TaskStatus_t * _14;
  4672. long unsigned int _27;
  4673. long unsigned int _30;
  4674. long unsigned int _33;
  4675. long unsigned int _36;
  4676. long unsigned int _39;
  4677. <bb 2> [local count: 429496728]:
  4678. # DEBUG BEGIN_STMT
  4679. # DEBUG uxTask => 0
  4680. # DEBUG uxQueue => 5
  4681. # DEBUG BEGIN_STMT
  4682. vTaskSuspendAll ();
  4683. # DEBUG BEGIN_STMT
  4684. uxCurrentNumberOfTasks.72_1 ={v} uxCurrentNumberOfTasks;
  4685. if (uxCurrentNumberOfTasks.72_1 <= uxArraySize_23(D))
  4686. goto <bb 7>; [50.00%]
  4687. else
  4688. goto <bb 6>; [50.00%]
  4689. <bb 7> [local count: 214748364]:
  4690. <bb 3> [local count: 1073741824]:
  4691. # uxTask_15 = PHI <0(7), uxTask_28(8)>
  4692. # uxQueue_17 = PHI <5(7), uxQueue_24(8)>
  4693. # DEBUG uxQueue => uxQueue_17
  4694. # DEBUG uxTask => uxTask_15
  4695. # DEBUG BEGIN_STMT
  4696. # DEBUG BEGIN_STMT
  4697. uxQueue_24 = uxQueue_17 + 4294967295;
  4698. # DEBUG uxQueue => uxQueue_24
  4699. # DEBUG BEGIN_STMT
  4700. _2 = uxTask_15 * 36;
  4701. _3 = pxTaskStatusArray_25(D) + _2;
  4702. _4 = &pxReadyTasksLists[uxQueue_24];
  4703. _27 = prvListTasksWithinSingleList (_3, _4, 1);
  4704. uxTask_28 = uxTask_15 + _27;
  4705. # DEBUG uxTask => uxTask_28
  4706. # DEBUG BEGIN_STMT
  4707. if (uxQueue_24 != 0)
  4708. goto <bb 8>; [80.00%]
  4709. else
  4710. goto <bb 4>; [20.00%]
  4711. <bb 8> [local count: 858993459]:
  4712. goto <bb 3>; [100.00%]
  4713. <bb 4> [local count: 214748365]:
  4714. # uxTask_20 = PHI <uxTask_28(3)>
  4715. # DEBUG BEGIN_STMT
  4716. _5 = uxTask_20 * 36;
  4717. _6 = pxTaskStatusArray_25(D) + _5;
  4718. pxDelayedTaskList.73_7 ={v} pxDelayedTaskList;
  4719. _30 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.73_7, 2);
  4720. uxTask_31 = uxTask_20 + _30;
  4721. # DEBUG uxTask => uxTask_31
  4722. # DEBUG BEGIN_STMT
  4723. _8 = uxTask_31 * 36;
  4724. _9 = pxTaskStatusArray_25(D) + _8;
  4725. pxOverflowDelayedTaskList.74_10 ={v} pxOverflowDelayedTaskList;
  4726. _33 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.74_10, 2);
  4727. uxTask_34 = uxTask_31 + _33;
  4728. # DEBUG uxTask => uxTask_34
  4729. # DEBUG BEGIN_STMT
  4730. _11 = uxTask_34 * 36;
  4731. _12 = pxTaskStatusArray_25(D) + _11;
  4732. _36 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4);
  4733. uxTask_37 = uxTask_34 + _36;
  4734. # DEBUG uxTask => uxTask_37
  4735. # DEBUG BEGIN_STMT
  4736. _13 = uxTask_37 * 36;
  4737. _14 = pxTaskStatusArray_25(D) + _13;
  4738. _39 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3);
  4739. uxTask_40 = uxTask_37 + _39;
  4740. # DEBUG uxTask => uxTask_40
  4741. # DEBUG BEGIN_STMT
  4742. if (pulTotalRunTime_41(D) != 0B)
  4743. goto <bb 5>; [70.00%]
  4744. else
  4745. goto <bb 6>; [30.00%]
  4746. <bb 5> [local count: 150323855]:
  4747. # DEBUG BEGIN_STMT
  4748. *pulTotalRunTime_41(D) = 0;
  4749. <bb 6> [local count: 429496729]:
  4750. # uxTask_16 = PHI <0(2), uxTask_40(5), uxTask_40(4)>
  4751. # DEBUG uxTask => uxTask_16
  4752. # DEBUG BEGIN_STMT
  4753. # DEBUG BEGIN_STMT
  4754. xTaskResumeAll ();
  4755. # DEBUG BEGIN_STMT
  4756. return uxTask_16;
  4757. }
  4758. xTaskGetHandle (const char * pcNameToQuery)
  4759. {
  4760. uint32_t ulNewBASEPRI;
  4761. struct TCB_t * pxTCB;
  4762. UBaseType_t uxQueue;
  4763. unsigned int _1;
  4764. struct List_t * _2;
  4765. struct List_t * pxDelayedTaskList.70_3;
  4766. struct List_t * pxOverflowDelayedTaskList.71_4;
  4767. <bb 2> [local count: 160260]:
  4768. # DEBUG BEGIN_STMT
  4769. # DEBUG uxQueue => 5
  4770. # DEBUG BEGIN_STMT
  4771. # DEBUG BEGIN_STMT
  4772. _1 = strlen (pcNameToQuery_17(D));
  4773. if (_1 > 9)
  4774. goto <bb 3>; [67.00%]
  4775. else
  4776. goto <bb 5>; [33.00%]
  4777. <bb 3> [local count: 107374]:
  4778. # DEBUG BEGIN_STMT
  4779. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4780. # DEBUG BEGIN_STMT
  4781. # DEBUG BEGIN_STMT
  4782. __asm__ __volatile__(" mov %0, %1
  4783. msr basepri, %0
  4784. isb
  4785. dsb
  4786. " : "=r" ulNewBASEPRI_31 : "i" 16 : "memory");
  4787. # DEBUG ulNewBASEPRI => ulNewBASEPRI_31
  4788. <bb 4> [local count: 1073741824]:
  4789. # DEBUG ulNewBASEPRI => NULL
  4790. # DEBUG BEGIN_STMT
  4791. # DEBUG BEGIN_STMT
  4792. # DEBUG BEGIN_STMT
  4793. <bb 17> [local count: 1073741824]:
  4794. goto <bb 4>; [100.00%]
  4795. <bb 5> [local count: 52886]:
  4796. # DEBUG BEGIN_STMT
  4797. # DEBUG BEGIN_STMT
  4798. vTaskSuspendAll ();
  4799. <bb 6> [local count: 216745]:
  4800. # uxQueue_5 = PHI <5(5), uxQueue_19(18)>
  4801. # DEBUG uxQueue => uxQueue_5
  4802. # DEBUG BEGIN_STMT
  4803. # DEBUG BEGIN_STMT
  4804. uxQueue_19 = uxQueue_5 + 4294967295;
  4805. # DEBUG uxQueue => uxQueue_19
  4806. # DEBUG BEGIN_STMT
  4807. _2 = &pxReadyTasksLists[uxQueue_19];
  4808. pxTCB_21 = prvSearchForNameWithinSingleList (_2, pcNameToQuery_17(D));
  4809. # DEBUG pxTCB => pxTCB_21
  4810. # DEBUG BEGIN_STMT
  4811. if (pxTCB_21 != 0B)
  4812. goto <bb 8>; [5.50%]
  4813. else
  4814. goto <bb 7>; [94.50%]
  4815. <bb 7> [local count: 204824]:
  4816. # DEBUG BEGIN_STMT
  4817. if (uxQueue_19 != 0)
  4818. goto <bb 18>; [80.00%]
  4819. else
  4820. goto <bb 8>; [20.00%]
  4821. <bb 18> [local count: 163859]:
  4822. goto <bb 6>; [100.00%]
  4823. <bb 8> [local count: 52886]:
  4824. # pxTCB_15 = PHI <pxTCB_21(6), 0B(7)>
  4825. # DEBUG BEGIN_STMT
  4826. if (pxTCB_15 == 0B)
  4827. goto <bb 9>; [17.43%]
  4828. else
  4829. goto <bb 10>; [82.57%]
  4830. <bb 9> [local count: 9218]:
  4831. # DEBUG BEGIN_STMT
  4832. pxDelayedTaskList.70_3 ={v} pxDelayedTaskList;
  4833. pxTCB_23 = prvSearchForNameWithinSingleList (pxDelayedTaskList.70_3, pcNameToQuery_17(D));
  4834. # DEBUG pxTCB => pxTCB_23
  4835. <bb 10> [local count: 52886]:
  4836. # pxTCB_6 = PHI <pxTCB_15(8), pxTCB_23(9)>
  4837. # DEBUG pxTCB => pxTCB_6
  4838. # DEBUG BEGIN_STMT
  4839. if (pxTCB_6 == 0B)
  4840. goto <bb 11>; [17.43%]
  4841. else
  4842. goto <bb 12>; [82.57%]
  4843. <bb 11> [local count: 9218]:
  4844. # DEBUG BEGIN_STMT
  4845. pxOverflowDelayedTaskList.71_4 ={v} pxOverflowDelayedTaskList;
  4846. pxTCB_25 = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.71_4, pcNameToQuery_17(D));
  4847. # DEBUG pxTCB => pxTCB_25
  4848. <bb 12> [local count: 52886]:
  4849. # pxTCB_7 = PHI <pxTCB_6(10), pxTCB_25(11)>
  4850. # DEBUG pxTCB => pxTCB_7
  4851. # DEBUG BEGIN_STMT
  4852. if (pxTCB_7 == 0B)
  4853. goto <bb 13>; [17.43%]
  4854. else
  4855. goto <bb 14>; [82.57%]
  4856. <bb 13> [local count: 9218]:
  4857. # DEBUG BEGIN_STMT
  4858. pxTCB_27 = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery_17(D));
  4859. # DEBUG pxTCB => pxTCB_27
  4860. <bb 14> [local count: 52886]:
  4861. # pxTCB_8 = PHI <pxTCB_7(12), pxTCB_27(13)>
  4862. # DEBUG pxTCB => pxTCB_8
  4863. # DEBUG BEGIN_STMT
  4864. if (pxTCB_8 == 0B)
  4865. goto <bb 15>; [17.43%]
  4866. else
  4867. goto <bb 16>; [82.57%]
  4868. <bb 15> [local count: 9218]:
  4869. # DEBUG BEGIN_STMT
  4870. pxTCB_29 = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery_17(D));
  4871. # DEBUG pxTCB => pxTCB_29
  4872. <bb 16> [local count: 52886]:
  4873. # pxTCB_9 = PHI <pxTCB_8(14), pxTCB_29(15)>
  4874. # DEBUG pxTCB => pxTCB_9
  4875. # DEBUG BEGIN_STMT
  4876. xTaskResumeAll ();
  4877. # DEBUG BEGIN_STMT
  4878. return pxTCB_9;
  4879. }
  4880. prvSearchForNameWithinSingleList (struct List_t * pxList, const char * pcNameToQuery)
  4881. {
  4882. char cNextChar;
  4883. UBaseType_t x;
  4884. struct TCB_t * pxReturn;
  4885. struct TCB_t * pxFirstTCB;
  4886. struct TCB_t * pxNextTCB;
  4887. long unsigned int _1;
  4888. struct ListItem_t * _2;
  4889. struct xLIST_ITEM * _3;
  4890. struct MiniListItem_t * _4;
  4891. struct xLIST_ITEM * _5;
  4892. struct ListItem_t * _6;
  4893. struct ListItem_t * _7;
  4894. struct xLIST_ITEM * _8;
  4895. struct xLIST_ITEM * _9;
  4896. struct ListItem_t * _10;
  4897. const char * _11;
  4898. char _12;
  4899. <bb 2> [local count: 25274560]:
  4900. # DEBUG BEGIN_STMT
  4901. # DEBUG pxReturn => 0B
  4902. # DEBUG BEGIN_STMT
  4903. # DEBUG BEGIN_STMT
  4904. # DEBUG BEGIN_STMT
  4905. # DEBUG BEGIN_STMT
  4906. _1 ={v} pxList_23(D)->uxNumberOfItems;
  4907. if (_1 != 0)
  4908. goto <bb 3>; [71.00%]
  4909. else
  4910. goto <bb 15>; [29.00%]
  4911. <bb 3> [local count: 17944938]:
  4912. # DEBUG BEGIN_STMT
  4913. # DEBUG pxConstList => pxList_23(D)
  4914. # DEBUG BEGIN_STMT
  4915. _2 = pxList_23(D)->pxIndex;
  4916. _3 = _2->pxNext;
  4917. pxList_23(D)->pxIndex = _3;
  4918. # DEBUG BEGIN_STMT
  4919. _4 = &pxList_23(D)->xListEnd;
  4920. if (_3 == _4)
  4921. goto <bb 4>; [30.00%]
  4922. else
  4923. goto <bb 5>; [70.00%]
  4924. <bb 4> [local count: 5383481]:
  4925. # DEBUG BEGIN_STMT
  4926. _5 = MEM[(struct ListItem_t *)_3].pxNext;
  4927. pxList_23(D)->pxIndex = _5;
  4928. <bb 5> [local count: 17944938]:
  4929. # DEBUG BEGIN_STMT
  4930. _6 = pxList_23(D)->pxIndex;
  4931. pxFirstTCB_26 = _6->pvOwner;
  4932. # DEBUG pxFirstTCB => pxFirstTCB_26
  4933. <bb 6> [local count: 167748888]:
  4934. # pxReturn_13 = PHI <0B(5), 0B(16)>
  4935. # DEBUG pxReturn => pxReturn_13
  4936. # DEBUG BEGIN_STMT
  4937. # DEBUG BEGIN_STMT
  4938. # DEBUG BEGIN_STMT
  4939. # DEBUG pxConstList => pxList_23(D)
  4940. # DEBUG BEGIN_STMT
  4941. _7 = pxList_23(D)->pxIndex;
  4942. _8 = _7->pxNext;
  4943. pxList_23(D)->pxIndex = _8;
  4944. # DEBUG BEGIN_STMT
  4945. if (_4 == _8)
  4946. goto <bb 7>; [30.00%]
  4947. else
  4948. goto <bb 8>; [70.00%]
  4949. <bb 7> [local count: 50324666]:
  4950. # DEBUG BEGIN_STMT
  4951. _9 = MEM[(struct ListItem_t *)_8].pxNext;
  4952. pxList_23(D)->pxIndex = _9;
  4953. <bb 8> [local count: 167748888]:
  4954. # DEBUG BEGIN_STMT
  4955. _10 = pxList_23(D)->pxIndex;
  4956. pxNextTCB_29 = _10->pvOwner;
  4957. # DEBUG pxNextTCB => pxNextTCB_29
  4958. # DEBUG BEGIN_STMT
  4959. # DEBUG BEGIN_STMT
  4960. # DEBUG xBreakLoop => 0
  4961. # DEBUG BEGIN_STMT
  4962. # DEBUG x => 0
  4963. goto <bb 12>; [100.00%]
  4964. <bb 9> [local count: 976138693]:
  4965. # DEBUG BEGIN_STMT
  4966. cNextChar_30 = pxNextTCB_29->pcTaskName[x_17];
  4967. # DEBUG cNextChar => cNextChar_30
  4968. # DEBUG BEGIN_STMT
  4969. _11 = pcNameToQuery_31(D) + x_17;
  4970. _12 = *_11;
  4971. if (_12 != cNextChar_30)
  4972. goto <bb 13>; [3.66%]
  4973. else
  4974. goto <bb 10>; [96.34%]
  4975. <bb 10> [local count: 940412017]:
  4976. # DEBUG BEGIN_STMT
  4977. if (cNextChar_30 == 0)
  4978. goto <bb 13>; [3.66%]
  4979. else
  4980. goto <bb 11>; [96.34%]
  4981. <bb 11> [local count: 905992937]:
  4982. # DEBUG xBreakLoop => 0
  4983. # DEBUG pxReturn => pxReturn_14
  4984. # DEBUG BEGIN_STMT
  4985. # DEBUG BEGIN_STMT
  4986. # DEBUG BEGIN_STMT
  4987. x_32 = x_17 + 1;
  4988. # DEBUG x => x_32
  4989. <bb 12> [local count: 1073741824]:
  4990. # pxReturn_14 = PHI <pxReturn_13(8), pxReturn_14(11)>
  4991. # x_17 = PHI <0(8), x_32(11)>
  4992. # DEBUG xBreakLoop => 0
  4993. # DEBUG x => x_17
  4994. # DEBUG pxReturn => pxReturn_14
  4995. # DEBUG BEGIN_STMT
  4996. if (x_17 != 10)
  4997. goto <bb 9>; [90.91%]
  4998. else
  4999. goto <bb 13>; [9.09%]
  5000. <bb 13> [local count: 167748888]:
  5001. # pxReturn_15 = PHI <pxNextTCB_29(10), pxReturn_14(12), pxReturn_14(9)>
  5002. # DEBUG xBreakLoop => NULL
  5003. # DEBUG pxReturn => pxReturn_15
  5004. # DEBUG BEGIN_STMT
  5005. if (pxReturn_15 != 0B)
  5006. goto <bb 15>; [5.50%]
  5007. else
  5008. goto <bb 14>; [94.50%]
  5009. <bb 14> [local count: 158522699]:
  5010. # DEBUG BEGIN_STMT
  5011. if (pxFirstTCB_26 != pxNextTCB_29)
  5012. goto <bb 16>; [94.50%]
  5013. else
  5014. goto <bb 15>; [5.50%]
  5015. <bb 16> [local count: 149803950]:
  5016. goto <bb 6>; [100.00%]
  5017. <bb 15> [local count: 25274560]:
  5018. # pxReturn_16 = PHI <0B(2), 0B(14), pxReturn_15(13)>
  5019. # DEBUG pxReturn => pxReturn_16
  5020. # DEBUG BEGIN_STMT
  5021. # DEBUG BEGIN_STMT
  5022. return pxReturn_16;
  5023. }
  5024. pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery)
  5025. {
  5026. uint32_t ulNewBASEPRI;
  5027. struct TCB_t * iftmp.69_1;
  5028. struct TCB_t * iftmp.69_4;
  5029. char * _5;
  5030. <bb 2> [local count: 357913]:
  5031. # DEBUG BEGIN_STMT
  5032. # DEBUG BEGIN_STMT
  5033. if (xTaskToQuery_2(D) == 0B)
  5034. goto <bb 3>; [30.00%]
  5035. else
  5036. goto <bb 4>; [70.00%]
  5037. <bb 3> [local count: 107374]:
  5038. iftmp.69_4 ={v} pxCurrentTCB;
  5039. <bb 4> [local count: 357913]:
  5040. # iftmp.69_1 = PHI <iftmp.69_4(3), xTaskToQuery_2(D)(2)>
  5041. # DEBUG pxTCB => iftmp.69_1
  5042. # DEBUG BEGIN_STMT
  5043. if (iftmp.69_1 == 0B)
  5044. goto <bb 5>; [30.00%]
  5045. else
  5046. goto <bb 7>; [70.00%]
  5047. <bb 5> [local count: 107374]:
  5048. # DEBUG BEGIN_STMT
  5049. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5050. # DEBUG BEGIN_STMT
  5051. # DEBUG BEGIN_STMT
  5052. __asm__ __volatile__(" mov %0, %1
  5053. msr basepri, %0
  5054. isb
  5055. dsb
  5056. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  5057. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  5058. <bb 6> [local count: 1073741824]:
  5059. # DEBUG ulNewBASEPRI => NULL
  5060. # DEBUG BEGIN_STMT
  5061. # DEBUG BEGIN_STMT
  5062. # DEBUG BEGIN_STMT
  5063. <bb 8> [local count: 1073741824]:
  5064. goto <bb 6>; [100.00%]
  5065. <bb 7> [local count: 250539]:
  5066. # DEBUG BEGIN_STMT
  5067. # DEBUG BEGIN_STMT
  5068. _5 = &iftmp.69_1->pcTaskName[0];
  5069. return _5;
  5070. }
  5071. uxTaskGetNumberOfTasks ()
  5072. {
  5073. UBaseType_t _2;
  5074. <bb 2> [local count: 1073741824]:
  5075. # DEBUG BEGIN_STMT
  5076. _2 ={v} uxCurrentNumberOfTasks;
  5077. return _2;
  5078. }
  5079. xTaskGetTickCountFromISR ()
  5080. {
  5081. TickType_t xReturn;
  5082. <bb 2> [local count: 1073741824]:
  5083. # DEBUG BEGIN_STMT
  5084. # DEBUG BEGIN_STMT
  5085. # DEBUG BEGIN_STMT
  5086. vPortValidateInterruptPriority ();
  5087. # DEBUG BEGIN_STMT
  5088. # DEBUG uxSavedInterruptStatus => 0
  5089. # DEBUG BEGIN_STMT
  5090. xReturn_3 ={v} xTickCount;
  5091. # DEBUG xReturn => xReturn_3
  5092. # DEBUG BEGIN_STMT
  5093. # DEBUG BEGIN_STMT
  5094. return xReturn_3;
  5095. }
  5096. xTaskGetTickCount ()
  5097. {
  5098. TickType_t xTicks;
  5099. <bb 2> [local count: 1073741824]:
  5100. # DEBUG BEGIN_STMT
  5101. # DEBUG BEGIN_STMT
  5102. # DEBUG BEGIN_STMT
  5103. xTicks_2 ={v} xTickCount;
  5104. # DEBUG xTicks => xTicks_2
  5105. # DEBUG BEGIN_STMT
  5106. # DEBUG BEGIN_STMT
  5107. return xTicks_2;
  5108. }
  5109. xTaskResumeAll ()
  5110. {
  5111. BaseType_t D.8425;
  5112. uint32_t ulNewBASEPRI;
  5113. long unsigned int uxSchedulerSuspended.62_1;
  5114. <bb 2> [local count: 160260]:
  5115. # DEBUG BEGIN_STMT
  5116. # DEBUG pxTCB => 0B
  5117. # DEBUG BEGIN_STMT
  5118. # DEBUG xAlreadyYielded => 0
  5119. # DEBUG BEGIN_STMT
  5120. uxSchedulerSuspended.62_1 ={v} uxSchedulerSuspended;
  5121. if (uxSchedulerSuspended.62_1 == 0)
  5122. goto <bb 3>; [67.00%]
  5123. else
  5124. goto <bb 5>; [33.00%]
  5125. <bb 3> [local count: 107374]:
  5126. # DEBUG BEGIN_STMT
  5127. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5128. # DEBUG BEGIN_STMT
  5129. # DEBUG BEGIN_STMT
  5130. __asm__ __volatile__(" mov %0, %1
  5131. msr basepri, %0
  5132. isb
  5133. dsb
  5134. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  5135. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  5136. <bb 4> [local count: 1073741824]:
  5137. # DEBUG ulNewBASEPRI => NULL
  5138. # DEBUG BEGIN_STMT
  5139. # DEBUG BEGIN_STMT
  5140. # DEBUG BEGIN_STMT
  5141. <bb 6> [local count: 1073741824]:
  5142. goto <bb 4>; [100.00%]
  5143. <bb 5> [local count: 52886]:
  5144. _2 = xTaskResumeAll.part.0 ();
  5145. return _2;
  5146. }
  5147. vTaskSuspendAll ()
  5148. {
  5149. long unsigned int uxSchedulerSuspended.61_1;
  5150. long unsigned int _2;
  5151. <bb 2> [local count: 1073741824]:
  5152. # DEBUG BEGIN_STMT
  5153. # DEBUG BEGIN_STMT
  5154. uxSchedulerSuspended.61_1 ={v} uxSchedulerSuspended;
  5155. _2 = uxSchedulerSuspended.61_1 + 1;
  5156. uxSchedulerSuspended ={v} _2;
  5157. # DEBUG BEGIN_STMT
  5158. __asm__ __volatile__("" : : : "memory");
  5159. return;
  5160. }
  5161. vTaskEndScheduler ()
  5162. {
  5163. uint32_t ulNewBASEPRI;
  5164. <bb 2> [local count: 1073741824]:
  5165. # DEBUG BEGIN_STMT
  5166. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5167. # DEBUG BEGIN_STMT
  5168. # DEBUG BEGIN_STMT
  5169. __asm__ __volatile__(" mov %0, %1
  5170. msr basepri, %0
  5171. isb
  5172. dsb
  5173. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  5174. # DEBUG ulNewBASEPRI => NULL
  5175. # DEBUG BEGIN_STMT
  5176. xSchedulerRunning ={v} 0;
  5177. # DEBUG BEGIN_STMT
  5178. vPortEndScheduler ();
  5179. return;
  5180. }
  5181. vTaskStartScheduler ()
  5182. {
  5183. uint32_t ulNewBASEPRI;
  5184. uint32_t ulNewBASEPRI;
  5185. BaseType_t xReturn;
  5186. long unsigned int vol.57_13;
  5187. <bb 2> [local count: 395945]:
  5188. # DEBUG BEGIN_STMT
  5189. # DEBUG BEGIN_STMT
  5190. xReturn_6 = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle);
  5191. # DEBUG xReturn => xReturn_6
  5192. # DEBUG BEGIN_STMT
  5193. if (xReturn_6 == 1)
  5194. goto <bb 3>; [20.24%]
  5195. else
  5196. goto <bb 4>; [79.76%]
  5197. <bb 3> [local count: 80139]:
  5198. # DEBUG BEGIN_STMT
  5199. xReturn_8 = xTimerCreateTimerTask ();
  5200. # DEBUG xReturn => xReturn_8
  5201. <bb 4> [local count: 395945]:
  5202. # xReturn_1 = PHI <xReturn_6(2), xReturn_8(3)>
  5203. # DEBUG xReturn => xReturn_1
  5204. # DEBUG BEGIN_STMT
  5205. # DEBUG BEGIN_STMT
  5206. if (xReturn_1 == 1)
  5207. goto <bb 5>; [20.24%]
  5208. else
  5209. goto <bb 6>; [79.76%]
  5210. <bb 5> [local count: 80139]:
  5211. # DEBUG BEGIN_STMT
  5212. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5213. # DEBUG BEGIN_STMT
  5214. # DEBUG BEGIN_STMT
  5215. __asm__ __volatile__(" mov %0, %1
  5216. msr basepri, %0
  5217. isb
  5218. dsb
  5219. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  5220. # DEBUG ulNewBASEPRI => NULL
  5221. # DEBUG BEGIN_STMT
  5222. xNextTaskUnblockTime ={v} 4294967295;
  5223. # DEBUG BEGIN_STMT
  5224. xSchedulerRunning ={v} 1;
  5225. # DEBUG BEGIN_STMT
  5226. xTickCount ={v} 0;
  5227. # DEBUG BEGIN_STMT
  5228. # DEBUG BEGIN_STMT
  5229. # DEBUG BEGIN_STMT
  5230. xPortStartScheduler ();
  5231. goto <bb 9>; [100.00%]
  5232. <bb 6> [local count: 315806]:
  5233. # DEBUG BEGIN_STMT
  5234. if (xReturn_1 == -1)
  5235. goto <bb 7>; [34.00%]
  5236. else
  5237. goto <bb 9>; [66.00%]
  5238. <bb 7> [local count: 107374]:
  5239. # DEBUG BEGIN_STMT
  5240. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5241. # DEBUG BEGIN_STMT
  5242. # DEBUG BEGIN_STMT
  5243. __asm__ __volatile__(" mov %0, %1
  5244. msr basepri, %0
  5245. isb
  5246. dsb
  5247. " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
  5248. # DEBUG ulNewBASEPRI => ulNewBASEPRI_15
  5249. <bb 8> [local count: 1073741824]:
  5250. # DEBUG ulNewBASEPRI => NULL
  5251. # DEBUG BEGIN_STMT
  5252. # DEBUG BEGIN_STMT
  5253. # DEBUG BEGIN_STMT
  5254. <bb 10> [local count: 1073741824]:
  5255. goto <bb 8>; [100.00%]
  5256. <bb 9> [local count: 288571]:
  5257. # DEBUG BEGIN_STMT
  5258. # DEBUG BEGIN_STMT
  5259. # DEBUG BEGIN_STMT
  5260. vol.57_13 ={v} uxTopUsedPriority;
  5261. return;
  5262. }
  5263. xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume)
  5264. {
  5265. uint32_t ulOriginalBASEPRI;
  5266. uint32_t ulNewBASEPRI;
  5267. uint32_t ulNewBASEPRI;
  5268. struct ListItem_t * const pxIndex;
  5269. BaseType_t xYieldRequired;
  5270. long int _1;
  5271. long unsigned int uxSchedulerSuspended.54_2;
  5272. long unsigned int _3;
  5273. struct TCB_t * pxCurrentTCB.55_4;
  5274. long unsigned int _5;
  5275. struct ListItem_t * _6;
  5276. long unsigned int _7;
  5277. long unsigned int uxTopReadyPriority.56_8;
  5278. struct xLIST_ITEM * _9;
  5279. struct xLIST_ITEM * _10;
  5280. struct List_t * _11;
  5281. long unsigned int _12;
  5282. long unsigned int _13;
  5283. struct ListItem_t * _14;
  5284. <bb 2> [local count: 230763]:
  5285. # DEBUG BEGIN_STMT
  5286. # DEBUG xYieldRequired => 0
  5287. # DEBUG BEGIN_STMT
  5288. # DEBUG pxTCB => xTaskToResume_20(D)
  5289. # DEBUG BEGIN_STMT
  5290. # DEBUG BEGIN_STMT
  5291. if (xTaskToResume_20(D) == 0B)
  5292. goto <bb 3>; [46.53%]
  5293. else
  5294. goto <bb 5>; [53.47%]
  5295. <bb 3> [local count: 107374]:
  5296. # DEBUG BEGIN_STMT
  5297. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5298. # DEBUG BEGIN_STMT
  5299. # DEBUG BEGIN_STMT
  5300. __asm__ __volatile__(" mov %0, %1
  5301. msr basepri, %0
  5302. isb
  5303. dsb
  5304. " : "=r" ulNewBASEPRI_35 : "i" 16 : "memory");
  5305. # DEBUG ulNewBASEPRI => ulNewBASEPRI_35
  5306. <bb 4> [local count: 1073741824]:
  5307. # DEBUG ulNewBASEPRI => NULL
  5308. # DEBUG BEGIN_STMT
  5309. # DEBUG BEGIN_STMT
  5310. # DEBUG BEGIN_STMT
  5311. <bb 14> [local count: 1073741824]:
  5312. goto <bb 4>; [100.00%]
  5313. <bb 5> [local count: 123389]:
  5314. # DEBUG BEGIN_STMT
  5315. # DEBUG BEGIN_STMT
  5316. vPortValidateInterruptPriority ();
  5317. # DEBUG BEGIN_STMT
  5318. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  5319. # DEBUG BEGIN_STMT
  5320. # DEBUG BEGIN_STMT
  5321. __asm__ __volatile__(" mrs %0, basepri
  5322. mov %1, %2
  5323. msr basepri, %1
  5324. isb
  5325. dsb
  5326. " : "=r" ulOriginalBASEPRI_36, "=r" ulNewBASEPRI_37 : "i" 16 : "memory");
  5327. # DEBUG ulNewBASEPRI => ulNewBASEPRI_37
  5328. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_36
  5329. # DEBUG BEGIN_STMT
  5330. # DEBUG ulNewBASEPRI => NULL
  5331. # DEBUG ulOriginalBASEPRI => NULL
  5332. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_36
  5333. # DEBUG BEGIN_STMT
  5334. _1 = prvTaskIsTaskSuspended (xTaskToResume_20(D));
  5335. if (_1 != 0)
  5336. goto <bb 6>; [50.00%]
  5337. else
  5338. goto <bb 13>; [50.00%]
  5339. <bb 6> [local count: 61694]:
  5340. # DEBUG BEGIN_STMT
  5341. # DEBUG BEGIN_STMT
  5342. uxSchedulerSuspended.54_2 ={v} uxSchedulerSuspended;
  5343. if (uxSchedulerSuspended.54_2 == 0)
  5344. goto <bb 7>; [67.00%]
  5345. else
  5346. goto <bb 12>; [33.00%]
  5347. <bb 7> [local count: 41335]:
  5348. # DEBUG BEGIN_STMT
  5349. _3 = MEM[(struct TCB_t *)xTaskToResume_20(D)].uxPriority;
  5350. pxCurrentTCB.55_4 ={v} pxCurrentTCB;
  5351. _5 = pxCurrentTCB.55_4->uxPriority;
  5352. if (_3 >= _5)
  5353. goto <bb 8>; [50.00%]
  5354. else
  5355. goto <bb 9>; [50.00%]
  5356. <bb 8> [local count: 20668]:
  5357. # DEBUG BEGIN_STMT
  5358. # DEBUG xYieldRequired => 1
  5359. # DEBUG BEGIN_STMT
  5360. xYieldPending ={v} 1;
  5361. <bb 9> [local count: 41335]:
  5362. # xYieldRequired_15 = PHI <0(7), 1(8)>
  5363. # DEBUG xYieldRequired => xYieldRequired_15
  5364. # DEBUG BEGIN_STMT
  5365. # DEBUG BEGIN_STMT
  5366. _6 = &MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem;
  5367. uxListRemove (_6);
  5368. # DEBUG BEGIN_STMT
  5369. # DEBUG BEGIN_STMT
  5370. _7 = MEM[(struct TCB_t *)xTaskToResume_20(D)].uxPriority;
  5371. uxTopReadyPriority.56_8 ={v} uxTopReadyPriority;
  5372. if (_7 > uxTopReadyPriority.56_8)
  5373. goto <bb 10>; [50.00%]
  5374. else
  5375. goto <bb 11>; [50.00%]
  5376. <bb 10> [local count: 20668]:
  5377. # DEBUG BEGIN_STMT
  5378. uxTopReadyPriority ={v} _7;
  5379. <bb 11> [local count: 41335]:
  5380. # DEBUG BEGIN_STMT
  5381. # DEBUG BEGIN_STMT
  5382. pxIndex_28 = pxReadyTasksLists[_7].pxIndex;
  5383. # DEBUG pxIndex => pxIndex_28
  5384. # DEBUG BEGIN_STMT
  5385. # DEBUG BEGIN_STMT
  5386. # DEBUG BEGIN_STMT
  5387. MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem.pxNext = pxIndex_28;
  5388. # DEBUG BEGIN_STMT
  5389. _9 = pxIndex_28->pxPrevious;
  5390. MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem.pxPrevious = _9;
  5391. # DEBUG BEGIN_STMT
  5392. _10 = pxIndex_28->pxPrevious;
  5393. _10->pxNext = _6;
  5394. # DEBUG BEGIN_STMT
  5395. pxIndex_28->pxPrevious = _6;
  5396. # DEBUG BEGIN_STMT
  5397. _11 = &pxReadyTasksLists[_7];
  5398. MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem.pvContainer = _11;
  5399. # DEBUG BEGIN_STMT
  5400. _12 ={v} pxReadyTasksLists[_7].uxNumberOfItems;
  5401. _13 = _12 + 1;
  5402. pxReadyTasksLists[_7].uxNumberOfItems ={v} _13;
  5403. # DEBUG BEGIN_STMT
  5404. # DEBUG BEGIN_STMT
  5405. goto <bb 13>; [100.00%]
  5406. <bb 12> [local count: 20359]:
  5407. # DEBUG BEGIN_STMT
  5408. _14 = &MEM[(struct TCB_t *)xTaskToResume_20(D)].xEventListItem;
  5409. vListInsertEnd (&xPendingReadyList, _14);
  5410. <bb 13> [local count: 123389]:
  5411. # xYieldRequired_16 = PHI <0(5), 0(12), xYieldRequired_15(11)>
  5412. # DEBUG xYieldRequired => xYieldRequired_16
  5413. # DEBUG BEGIN_STMT
  5414. # DEBUG BEGIN_STMT
  5415. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_36
  5416. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  5417. # DEBUG BEGIN_STMT
  5418. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_36 : "memory");
  5419. # DEBUG ulNewMaskValue => NULL
  5420. # DEBUG BEGIN_STMT
  5421. return xYieldRequired_16;
  5422. }
  5423. vTaskResume (struct tskTaskControlBlock * xTaskToResume)
  5424. {
  5425. uint32_t ulNewBASEPRI;
  5426. struct ListItem_t * const pxIndex;
  5427. struct TCB_t * pxCurrentTCB.51_1;
  5428. long int _2;
  5429. struct ListItem_t * _3;
  5430. long unsigned int _4;
  5431. long unsigned int uxTopReadyPriority.52_5;
  5432. struct xLIST_ITEM * _6;
  5433. struct xLIST_ITEM * _7;
  5434. struct List_t * _8;
  5435. long unsigned int _9;
  5436. long unsigned int _10;
  5437. struct TCB_t * pxCurrentTCB.53_11;
  5438. long unsigned int _12;
  5439. <bb 2> [local count: 357913]:
  5440. # DEBUG BEGIN_STMT
  5441. # DEBUG pxTCB => xTaskToResume_16(D)
  5442. # DEBUG BEGIN_STMT
  5443. if (xTaskToResume_16(D) == 0B)
  5444. goto <bb 3>; [30.00%]
  5445. else
  5446. goto <bb 5>; [70.00%]
  5447. <bb 3> [local count: 107374]:
  5448. # DEBUG BEGIN_STMT
  5449. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5450. # DEBUG BEGIN_STMT
  5451. # DEBUG BEGIN_STMT
  5452. __asm__ __volatile__(" mov %0, %1
  5453. msr basepri, %0
  5454. isb
  5455. dsb
  5456. " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory");
  5457. # DEBUG ulNewBASEPRI => ulNewBASEPRI_33
  5458. <bb 4> [local count: 1073741824]:
  5459. # DEBUG ulNewBASEPRI => NULL
  5460. # DEBUG BEGIN_STMT
  5461. # DEBUG BEGIN_STMT
  5462. # DEBUG BEGIN_STMT
  5463. <bb 13> [local count: 1073741824]:
  5464. goto <bb 4>; [100.00%]
  5465. <bb 5> [local count: 250539]:
  5466. # DEBUG BEGIN_STMT
  5467. # DEBUG BEGIN_STMT
  5468. pxCurrentTCB.51_1 ={v} pxCurrentTCB;
  5469. if (pxCurrentTCB.51_1 != xTaskToResume_16(D))
  5470. goto <bb 6>; [53.47%]
  5471. else
  5472. goto <bb 12>; [46.53%]
  5473. <bb 6> [local count: 133963]:
  5474. # DEBUG BEGIN_STMT
  5475. vPortEnterCritical ();
  5476. # DEBUG BEGIN_STMT
  5477. _2 = prvTaskIsTaskSuspended (xTaskToResume_16(D));
  5478. if (_2 != 0)
  5479. goto <bb 7>; [33.00%]
  5480. else
  5481. goto <bb 11>; [67.00%]
  5482. <bb 7> [local count: 44208]:
  5483. # DEBUG BEGIN_STMT
  5484. # DEBUG BEGIN_STMT
  5485. _3 = &MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem;
  5486. uxListRemove (_3);
  5487. # DEBUG BEGIN_STMT
  5488. # DEBUG BEGIN_STMT
  5489. _4 = MEM[(struct TCB_t *)xTaskToResume_16(D)].uxPriority;
  5490. uxTopReadyPriority.52_5 ={v} uxTopReadyPriority;
  5491. if (_4 > uxTopReadyPriority.52_5)
  5492. goto <bb 8>; [50.00%]
  5493. else
  5494. goto <bb 9>; [50.00%]
  5495. <bb 8> [local count: 22104]:
  5496. # DEBUG BEGIN_STMT
  5497. uxTopReadyPriority ={v} _4;
  5498. <bb 9> [local count: 44208]:
  5499. # DEBUG BEGIN_STMT
  5500. # DEBUG BEGIN_STMT
  5501. pxIndex_22 = pxReadyTasksLists[_4].pxIndex;
  5502. # DEBUG pxIndex => pxIndex_22
  5503. # DEBUG BEGIN_STMT
  5504. # DEBUG BEGIN_STMT
  5505. # DEBUG BEGIN_STMT
  5506. MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem.pxNext = pxIndex_22;
  5507. # DEBUG BEGIN_STMT
  5508. _6 = pxIndex_22->pxPrevious;
  5509. MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem.pxPrevious = _6;
  5510. # DEBUG BEGIN_STMT
  5511. _7 = pxIndex_22->pxPrevious;
  5512. _7->pxNext = _3;
  5513. # DEBUG BEGIN_STMT
  5514. pxIndex_22->pxPrevious = _3;
  5515. # DEBUG BEGIN_STMT
  5516. _8 = &pxReadyTasksLists[_4];
  5517. MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem.pvContainer = _8;
  5518. # DEBUG BEGIN_STMT
  5519. _9 ={v} pxReadyTasksLists[_4].uxNumberOfItems;
  5520. _10 = _9 + 1;
  5521. pxReadyTasksLists[_4].uxNumberOfItems ={v} _10;
  5522. # DEBUG BEGIN_STMT
  5523. # DEBUG BEGIN_STMT
  5524. # DEBUG BEGIN_STMT
  5525. pxCurrentTCB.53_11 ={v} pxCurrentTCB;
  5526. _12 = pxCurrentTCB.53_11->uxPriority;
  5527. if (_4 >= _12)
  5528. goto <bb 10>; [50.00%]
  5529. else
  5530. goto <bb 11>; [50.00%]
  5531. <bb 10> [local count: 22104]:
  5532. # DEBUG BEGIN_STMT
  5533. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  5534. # DEBUG BEGIN_STMT
  5535. __asm__ __volatile__("dsb" : : : "memory");
  5536. # DEBUG BEGIN_STMT
  5537. __asm__ __volatile__("isb");
  5538. # DEBUG BEGIN_STMT
  5539. <bb 11> [local count: 133963]:
  5540. # DEBUG BEGIN_STMT
  5541. # DEBUG BEGIN_STMT
  5542. vPortExitCritical ();
  5543. <bb 12> [local count: 250539]:
  5544. # DEBUG BEGIN_STMT
  5545. return;
  5546. }
  5547. prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask)
  5548. {
  5549. uint32_t ulNewBASEPRI;
  5550. BaseType_t xReturn;
  5551. struct xLIST * _1;
  5552. <bb 2> [local count: 357913]:
  5553. # DEBUG BEGIN_STMT
  5554. # DEBUG xReturn => 0
  5555. # DEBUG BEGIN_STMT
  5556. # DEBUG pxTCB => xTask_5(D)
  5557. # DEBUG BEGIN_STMT
  5558. if (xTask_5(D) == 0B)
  5559. goto <bb 3>; [30.00%]
  5560. else
  5561. goto <bb 5>; [70.00%]
  5562. <bb 3> [local count: 107374]:
  5563. # DEBUG BEGIN_STMT
  5564. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5565. # DEBUG BEGIN_STMT
  5566. # DEBUG BEGIN_STMT
  5567. __asm__ __volatile__(" mov %0, %1
  5568. msr basepri, %0
  5569. isb
  5570. dsb
  5571. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  5572. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  5573. <bb 4> [local count: 1073741824]:
  5574. # DEBUG ulNewBASEPRI => NULL
  5575. # DEBUG BEGIN_STMT
  5576. # DEBUG BEGIN_STMT
  5577. # DEBUG BEGIN_STMT
  5578. <bb 8> [local count: 1073741824]:
  5579. goto <bb 4>; [100.00%]
  5580. <bb 5> [local count: 250539]:
  5581. # DEBUG BEGIN_STMT
  5582. # DEBUG BEGIN_STMT
  5583. _1 = MEM[(const struct TCB_t *)xTask_5(D)].xStateListItem.pvContainer;
  5584. if (_1 == &xSuspendedTaskList)
  5585. goto <bb 6>; [30.00%]
  5586. else
  5587. goto <bb 7>; [70.00%]
  5588. <bb 6> [local count: 75162]:
  5589. xReturn_2 = prvTaskIsTaskSuspended.part.0 (xTask_5(D));
  5590. <bb 7> [local count: 250539]:
  5591. # xReturn_3 = PHI <0(5), xReturn_2(6)>
  5592. # DEBUG xReturn => xReturn_3
  5593. # DEBUG BEGIN_STMT
  5594. # DEBUG BEGIN_STMT
  5595. return xReturn_3;
  5596. }
  5597. vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend)
  5598. {
  5599. uint32_t ulNewBASEPRI;
  5600. BaseType_t x;
  5601. struct ListItem_t * _1;
  5602. struct xLIST * _2;
  5603. struct ListItem_t * _3;
  5604. unsigned char _4;
  5605. long int xSchedulerRunning.46_5;
  5606. struct TCB_t * pxCurrentTCB.47_6;
  5607. long int xSchedulerRunning.48_7;
  5608. long unsigned int uxSchedulerSuspended.49_8;
  5609. long unsigned int _9;
  5610. long unsigned int uxCurrentNumberOfTasks.50_10;
  5611. struct TCB_t * iftmp.45_12;
  5612. struct TCB_t * iftmp.45_21;
  5613. <bb 2> [local count: 1431653]:
  5614. # DEBUG BEGIN_STMT
  5615. # DEBUG BEGIN_STMT
  5616. vPortEnterCritical ();
  5617. # DEBUG BEGIN_STMT
  5618. if (xTaskToSuspend_20(D) == 0B)
  5619. goto <bb 3>; [30.00%]
  5620. else
  5621. goto <bb 4>; [70.00%]
  5622. <bb 3> [local count: 429496]:
  5623. iftmp.45_21 ={v} pxCurrentTCB;
  5624. <bb 4> [local count: 1431653]:
  5625. # iftmp.45_12 = PHI <iftmp.45_21(3), xTaskToSuspend_20(D)(2)>
  5626. # DEBUG pxTCB => iftmp.45_12
  5627. # DEBUG BEGIN_STMT
  5628. # DEBUG BEGIN_STMT
  5629. _1 = &iftmp.45_12->xStateListItem;
  5630. uxListRemove (_1);
  5631. # DEBUG BEGIN_STMT
  5632. # DEBUG BEGIN_STMT
  5633. _2 = iftmp.45_12->xEventListItem.pvContainer;
  5634. if (_2 != 0B)
  5635. goto <bb 5>; [53.47%]
  5636. else
  5637. goto <bb 6>; [46.53%]
  5638. <bb 5> [local count: 765505]:
  5639. # DEBUG BEGIN_STMT
  5640. _3 = &iftmp.45_12->xEventListItem;
  5641. uxListRemove (_3);
  5642. <bb 6> [local count: 1431653]:
  5643. # DEBUG BEGIN_STMT
  5644. # DEBUG BEGIN_STMT
  5645. vListInsertEnd (&xSuspendedTaskList, _1);
  5646. # DEBUG BEGIN_STMT
  5647. # DEBUG BEGIN_STMT
  5648. # DEBUG x => 0
  5649. goto <bb 9>; [100.00%]
  5650. <bb 7> [local count: 24598407]:
  5651. # DEBUG BEGIN_STMT
  5652. _4 ={v} iftmp.45_12->ucNotifyState[0];
  5653. if (_4 == 1)
  5654. goto <bb 8>; [67.00%]
  5655. else
  5656. goto <bb 24>; [33.00%]
  5657. <bb 24> [local count: 8117474]:
  5658. goto <bb 10>; [100.00%]
  5659. <bb 8> [local count: 16480933]:
  5660. # DEBUG BEGIN_STMT
  5661. iftmp.45_12->ucNotifyState[0] ={v} 0;
  5662. <bb 9> [local count: 17912586]:
  5663. # x_14 = PHI <0(6), 1(8)>
  5664. <bb 10> [local count: 26030061]:
  5665. # x_11 = PHI <x_14(9), 1(24)>
  5666. # DEBUG x => x_11
  5667. # DEBUG BEGIN_STMT
  5668. if (x_11 == 0)
  5669. goto <bb 7>; [94.50%]
  5670. else
  5671. goto <bb 11>; [5.50%]
  5672. <bb 11> [local count: 1431653]:
  5673. # DEBUG BEGIN_STMT
  5674. vPortExitCritical ();
  5675. # DEBUG BEGIN_STMT
  5676. xSchedulerRunning.46_5 ={v} xSchedulerRunning;
  5677. if (xSchedulerRunning.46_5 != 0)
  5678. goto <bb 12>; [33.00%]
  5679. else
  5680. goto <bb 13>; [67.00%]
  5681. <bb 12> [local count: 472446]:
  5682. # DEBUG BEGIN_STMT
  5683. vPortEnterCritical ();
  5684. # DEBUG BEGIN_STMT
  5685. prvResetNextTaskUnblockTime ();
  5686. # DEBUG BEGIN_STMT
  5687. vPortExitCritical ();
  5688. <bb 13> [local count: 1431653]:
  5689. # DEBUG BEGIN_STMT
  5690. # DEBUG BEGIN_STMT
  5691. pxCurrentTCB.47_6 ={v} pxCurrentTCB;
  5692. if (pxCurrentTCB.47_6 == iftmp.45_12)
  5693. goto <bb 14>; [30.00%]
  5694. else
  5695. goto <bb 22>; [70.00%]
  5696. <bb 14> [local count: 429496]:
  5697. # DEBUG BEGIN_STMT
  5698. xSchedulerRunning.48_7 ={v} xSchedulerRunning;
  5699. if (xSchedulerRunning.48_7 != 0)
  5700. goto <bb 15>; [50.00%]
  5701. else
  5702. goto <bb 19>; [50.00%]
  5703. <bb 15> [local count: 214748]:
  5704. # DEBUG BEGIN_STMT
  5705. uxSchedulerSuspended.49_8 ={v} uxSchedulerSuspended;
  5706. if (uxSchedulerSuspended.49_8 != 0)
  5707. goto <bb 16>; [50.00%]
  5708. else
  5709. goto <bb 18>; [50.00%]
  5710. <bb 16> [local count: 107374]:
  5711. # DEBUG BEGIN_STMT
  5712. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5713. # DEBUG BEGIN_STMT
  5714. # DEBUG BEGIN_STMT
  5715. __asm__ __volatile__(" mov %0, %1
  5716. msr basepri, %0
  5717. isb
  5718. dsb
  5719. " : "=r" ulNewBASEPRI_36 : "i" 16 : "memory");
  5720. # DEBUG ulNewBASEPRI => ulNewBASEPRI_36
  5721. <bb 17> [local count: 1073741824]:
  5722. # DEBUG ulNewBASEPRI => NULL
  5723. # DEBUG BEGIN_STMT
  5724. # DEBUG BEGIN_STMT
  5725. # DEBUG BEGIN_STMT
  5726. <bb 23> [local count: 1073741824]:
  5727. goto <bb 17>; [100.00%]
  5728. <bb 18> [local count: 107374]:
  5729. # DEBUG BEGIN_STMT
  5730. # DEBUG BEGIN_STMT
  5731. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  5732. # DEBUG BEGIN_STMT
  5733. __asm__ __volatile__("dsb" : : : "memory");
  5734. # DEBUG BEGIN_STMT
  5735. __asm__ __volatile__("isb");
  5736. # DEBUG BEGIN_STMT
  5737. goto <bb 22>; [100.00%]
  5738. <bb 19> [local count: 214748]:
  5739. # DEBUG BEGIN_STMT
  5740. _9 ={v} xSuspendedTaskList.uxNumberOfItems;
  5741. uxCurrentNumberOfTasks.50_10 ={v} uxCurrentNumberOfTasks;
  5742. if (_9 == uxCurrentNumberOfTasks.50_10)
  5743. goto <bb 20>; [51.12%]
  5744. else
  5745. goto <bb 21>; [48.88%]
  5746. <bb 20> [local count: 109779]:
  5747. # DEBUG BEGIN_STMT
  5748. pxCurrentTCB ={v} 0B;
  5749. goto <bb 22>; [100.00%]
  5750. <bb 21> [local count: 104969]:
  5751. # DEBUG BEGIN_STMT
  5752. vTaskSwitchContext ();
  5753. <bb 22> [local count: 1324279]:
  5754. # DEBUG BEGIN_STMT
  5755. return;
  5756. }
  5757. vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority)
  5758. {
  5759. uint32_t ulNewBASEPRI;
  5760. struct ListItem_t * const pxIndex;
  5761. BaseType_t xYieldRequired;
  5762. UBaseType_t uxPriorityUsedOnEntry;
  5763. UBaseType_t uxCurrentBasePriority;
  5764. struct TCB_t * pxCurrentTCB.41_1;
  5765. struct TCB_t * pxCurrentTCB.42_2;
  5766. long unsigned int _3;
  5767. struct TCB_t * pxCurrentTCB.43_4;
  5768. long unsigned int _5;
  5769. signed int _6;
  5770. long unsigned int _7;
  5771. struct xLIST * _8;
  5772. struct List_t * _9;
  5773. struct ListItem_t * _10;
  5774. long unsigned int _11;
  5775. long unsigned int uxTopReadyPriority.44_12;
  5776. struct xLIST_ITEM * _13;
  5777. struct xLIST_ITEM * _14;
  5778. struct List_t * _15;
  5779. long unsigned int _16;
  5780. long unsigned int _17;
  5781. struct TCB_t * iftmp.40_19;
  5782. struct TCB_t * iftmp.40_29;
  5783. <bb 2> [local count: 160260]:
  5784. # DEBUG BEGIN_STMT
  5785. # DEBUG BEGIN_STMT
  5786. # DEBUG BEGIN_STMT
  5787. # DEBUG xYieldRequired => 0
  5788. # DEBUG BEGIN_STMT
  5789. if (uxNewPriority_25(D) > 4)
  5790. goto <bb 3>; [67.00%]
  5791. else
  5792. goto <bb 5>; [33.00%]
  5793. <bb 3> [local count: 107374]:
  5794. # DEBUG BEGIN_STMT
  5795. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5796. # DEBUG BEGIN_STMT
  5797. # DEBUG BEGIN_STMT
  5798. __asm__ __volatile__(" mov %0, %1
  5799. msr basepri, %0
  5800. isb
  5801. dsb
  5802. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  5803. # DEBUG ulNewBASEPRI => ulNewBASEPRI_48
  5804. <bb 4> [local count: 1073741824]:
  5805. # DEBUG ulNewBASEPRI => NULL
  5806. # DEBUG BEGIN_STMT
  5807. # DEBUG BEGIN_STMT
  5808. # DEBUG BEGIN_STMT
  5809. <bb 25> [local count: 1073741824]:
  5810. goto <bb 4>; [100.00%]
  5811. <bb 5> [local count: 52886]:
  5812. # DEBUG BEGIN_STMT
  5813. # DEBUG BEGIN_STMT
  5814. # DEBUG uxNewPriority => uxNewPriority_25(D)
  5815. # DEBUG BEGIN_STMT
  5816. # DEBUG BEGIN_STMT
  5817. vPortEnterCritical ();
  5818. # DEBUG BEGIN_STMT
  5819. if (xTask_28(D) == 0B)
  5820. goto <bb 6>; [30.00%]
  5821. else
  5822. goto <bb 7>; [70.00%]
  5823. <bb 6> [local count: 15866]:
  5824. iftmp.40_29 ={v} pxCurrentTCB;
  5825. <bb 7> [local count: 52886]:
  5826. # iftmp.40_19 = PHI <iftmp.40_29(6), xTask_28(D)(5)>
  5827. # DEBUG pxTCB => iftmp.40_19
  5828. # DEBUG BEGIN_STMT
  5829. # DEBUG BEGIN_STMT
  5830. uxCurrentBasePriority_30 = iftmp.40_19->uxBasePriority;
  5831. # DEBUG uxCurrentBasePriority => uxCurrentBasePriority_30
  5832. # DEBUG BEGIN_STMT
  5833. if (uxNewPriority_25(D) != uxCurrentBasePriority_30)
  5834. goto <bb 8>; [66.00%]
  5835. else
  5836. goto <bb 24>; [34.00%]
  5837. <bb 8> [local count: 34905]:
  5838. # DEBUG BEGIN_STMT
  5839. if (uxNewPriority_25(D) > uxCurrentBasePriority_30)
  5840. goto <bb 9>; [50.00%]
  5841. else
  5842. goto <bb 12>; [50.00%]
  5843. <bb 9> [local count: 17452]:
  5844. # DEBUG BEGIN_STMT
  5845. pxCurrentTCB.41_1 ={v} pxCurrentTCB;
  5846. if (pxCurrentTCB.41_1 != iftmp.40_19)
  5847. goto <bb 10>; [70.00%]
  5848. else
  5849. goto <bb 14>; [30.00%]
  5850. <bb 10> [local count: 12217]:
  5851. # DEBUG BEGIN_STMT
  5852. pxCurrentTCB.42_2 ={v} pxCurrentTCB;
  5853. _3 = pxCurrentTCB.42_2->uxPriority;
  5854. if (_3 <= uxNewPriority_25(D))
  5855. goto <bb 11>; [50.00%]
  5856. else
  5857. goto <bb 14>; [50.00%]
  5858. <bb 11> [local count: 6108]:
  5859. # DEBUG BEGIN_STMT
  5860. # DEBUG xYieldRequired => 1
  5861. goto <bb 14>; [100.00%]
  5862. <bb 12> [local count: 17452]:
  5863. # DEBUG BEGIN_STMT
  5864. pxCurrentTCB.43_4 ={v} pxCurrentTCB;
  5865. if (pxCurrentTCB.43_4 == iftmp.40_19)
  5866. goto <bb 13>; [30.00%]
  5867. else
  5868. goto <bb 14>; [70.00%]
  5869. <bb 13> [local count: 5236]:
  5870. # DEBUG BEGIN_STMT
  5871. # DEBUG xYieldRequired => 1
  5872. <bb 14> [local count: 34905]:
  5873. # xYieldRequired_18 = PHI <1(11), 0(12), 1(13), 0(9), 0(10)>
  5874. # DEBUG xYieldRequired => xYieldRequired_18
  5875. # DEBUG BEGIN_STMT
  5876. # DEBUG BEGIN_STMT
  5877. uxPriorityUsedOnEntry_31 = iftmp.40_19->uxPriority;
  5878. # DEBUG uxPriorityUsedOnEntry => uxPriorityUsedOnEntry_31
  5879. # DEBUG BEGIN_STMT
  5880. if (uxCurrentBasePriority_30 == uxPriorityUsedOnEntry_31)
  5881. goto <bb 15>; [34.00%]
  5882. else
  5883. goto <bb 16>; [66.00%]
  5884. <bb 15> [local count: 11868]:
  5885. # DEBUG BEGIN_STMT
  5886. iftmp.40_19->uxPriority = uxNewPriority_25(D);
  5887. <bb 16> [local count: 34905]:
  5888. # DEBUG BEGIN_STMT
  5889. # DEBUG BEGIN_STMT
  5890. iftmp.40_19->uxBasePriority = uxNewPriority_25(D);
  5891. # DEBUG BEGIN_STMT
  5892. _5 = iftmp.40_19->xEventListItem.xItemValue;
  5893. _6 = (signed int) _5;
  5894. if (_6 >= 0)
  5895. goto <bb 17>; [59.00%]
  5896. else
  5897. goto <bb 18>; [41.00%]
  5898. <bb 17> [local count: 20594]:
  5899. # DEBUG BEGIN_STMT
  5900. _7 = 5 - uxNewPriority_25(D);
  5901. iftmp.40_19->xEventListItem.xItemValue = _7;
  5902. <bb 18> [local count: 34905]:
  5903. # DEBUG BEGIN_STMT
  5904. # DEBUG BEGIN_STMT
  5905. _8 = iftmp.40_19->xStateListItem.pvContainer;
  5906. _9 = &pxReadyTasksLists[uxPriorityUsedOnEntry_31];
  5907. if (_8 == _9)
  5908. goto <bb 19>; [17.43%]
  5909. else
  5910. goto <bb 22>; [82.57%]
  5911. <bb 19> [local count: 6084]:
  5912. # DEBUG BEGIN_STMT
  5913. _10 = &iftmp.40_19->xStateListItem;
  5914. uxListRemove (_10);
  5915. # DEBUG BEGIN_STMT
  5916. # DEBUG BEGIN_STMT
  5917. # DEBUG BEGIN_STMT
  5918. _11 = iftmp.40_19->uxPriority;
  5919. uxTopReadyPriority.44_12 ={v} uxTopReadyPriority;
  5920. if (_11 > uxTopReadyPriority.44_12)
  5921. goto <bb 20>; [50.00%]
  5922. else
  5923. goto <bb 21>; [50.00%]
  5924. <bb 20> [local count: 3042]:
  5925. # DEBUG BEGIN_STMT
  5926. uxTopReadyPriority ={v} _11;
  5927. <bb 21> [local count: 6084]:
  5928. # DEBUG BEGIN_STMT
  5929. # DEBUG BEGIN_STMT
  5930. pxIndex_37 = pxReadyTasksLists[_11].pxIndex;
  5931. # DEBUG pxIndex => pxIndex_37
  5932. # DEBUG BEGIN_STMT
  5933. # DEBUG BEGIN_STMT
  5934. # DEBUG BEGIN_STMT
  5935. iftmp.40_19->xStateListItem.pxNext = pxIndex_37;
  5936. # DEBUG BEGIN_STMT
  5937. _13 = pxIndex_37->pxPrevious;
  5938. iftmp.40_19->xStateListItem.pxPrevious = _13;
  5939. # DEBUG BEGIN_STMT
  5940. _14 = pxIndex_37->pxPrevious;
  5941. _14->pxNext = _10;
  5942. # DEBUG BEGIN_STMT
  5943. pxIndex_37->pxPrevious = _10;
  5944. # DEBUG BEGIN_STMT
  5945. _15 = &pxReadyTasksLists[_11];
  5946. iftmp.40_19->xStateListItem.pvContainer = _15;
  5947. # DEBUG BEGIN_STMT
  5948. _16 ={v} pxReadyTasksLists[_11].uxNumberOfItems;
  5949. _17 = _16 + 1;
  5950. pxReadyTasksLists[_11].uxNumberOfItems ={v} _17;
  5951. # DEBUG BEGIN_STMT
  5952. # DEBUG BEGIN_STMT
  5953. <bb 22> [local count: 34905]:
  5954. # DEBUG BEGIN_STMT
  5955. # DEBUG BEGIN_STMT
  5956. if (xYieldRequired_18 != 0)
  5957. goto <bb 23>; [50.00%]
  5958. else
  5959. goto <bb 24>; [50.00%]
  5960. <bb 23> [local count: 17452]:
  5961. # DEBUG BEGIN_STMT
  5962. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  5963. # DEBUG BEGIN_STMT
  5964. __asm__ __volatile__("dsb" : : : "memory");
  5965. # DEBUG BEGIN_STMT
  5966. __asm__ __volatile__("isb");
  5967. # DEBUG BEGIN_STMT
  5968. <bb 24> [local count: 52886]:
  5969. # DEBUG BEGIN_STMT
  5970. # DEBUG BEGIN_STMT
  5971. # DEBUG BEGIN_STMT
  5972. vPortExitCritical ();
  5973. return;
  5974. }
  5975. uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask)
  5976. {
  5977. uint32_t ulOriginalBASEPRI;
  5978. uint32_t ulNewBASEPRI;
  5979. UBaseType_t uxReturn;
  5980. const struct TCB_t * iftmp.39_1;
  5981. const struct TCB_t * iftmp.39_5;
  5982. <bb 2> [local count: 1073741824]:
  5983. # DEBUG BEGIN_STMT
  5984. # DEBUG BEGIN_STMT
  5985. # DEBUG BEGIN_STMT
  5986. vPortValidateInterruptPriority ();
  5987. # DEBUG BEGIN_STMT
  5988. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  5989. # DEBUG BEGIN_STMT
  5990. # DEBUG BEGIN_STMT
  5991. __asm__ __volatile__(" mrs %0, basepri
  5992. mov %1, %2
  5993. msr basepri, %1
  5994. isb
  5995. dsb
  5996. " : "=r" ulOriginalBASEPRI_7, "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  5997. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  5998. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_7
  5999. # DEBUG BEGIN_STMT
  6000. # DEBUG ulNewBASEPRI => NULL
  6001. # DEBUG ulOriginalBASEPRI => NULL
  6002. # DEBUG uxSavedInterruptState => ulOriginalBASEPRI_7
  6003. # DEBUG BEGIN_STMT
  6004. if (xTask_4(D) == 0B)
  6005. goto <bb 3>; [30.00%]
  6006. else
  6007. goto <bb 4>; [70.00%]
  6008. <bb 3> [local count: 322122547]:
  6009. iftmp.39_5 ={v} pxCurrentTCB;
  6010. <bb 4> [local count: 1073741824]:
  6011. # iftmp.39_1 = PHI <iftmp.39_5(3), xTask_4(D)(2)>
  6012. # DEBUG pxTCB => iftmp.39_1
  6013. # DEBUG BEGIN_STMT
  6014. uxReturn_6 = iftmp.39_1->uxPriority;
  6015. # DEBUG uxReturn => uxReturn_6
  6016. # DEBUG BEGIN_STMT
  6017. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_7
  6018. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  6019. # DEBUG BEGIN_STMT
  6020. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_7 : "memory");
  6021. # DEBUG ulNewMaskValue => NULL
  6022. # DEBUG BEGIN_STMT
  6023. return uxReturn_6;
  6024. }
  6025. uxTaskPriorityGet (struct tskTaskControlBlock * const xTask)
  6026. {
  6027. UBaseType_t uxReturn;
  6028. const struct TCB_t * iftmp.38_1;
  6029. const struct TCB_t * iftmp.38_5;
  6030. <bb 2> [local count: 1073741824]:
  6031. # DEBUG BEGIN_STMT
  6032. # DEBUG BEGIN_STMT
  6033. # DEBUG BEGIN_STMT
  6034. vPortEnterCritical ();
  6035. # DEBUG BEGIN_STMT
  6036. if (xTask_4(D) == 0B)
  6037. goto <bb 3>; [30.00%]
  6038. else
  6039. goto <bb 4>; [70.00%]
  6040. <bb 3> [local count: 322122547]:
  6041. iftmp.38_5 ={v} pxCurrentTCB;
  6042. <bb 4> [local count: 1073741824]:
  6043. # iftmp.38_1 = PHI <iftmp.38_5(3), xTask_4(D)(2)>
  6044. # DEBUG pxTCB => iftmp.38_1
  6045. # DEBUG BEGIN_STMT
  6046. uxReturn_6 = iftmp.38_1->uxPriority;
  6047. # DEBUG uxReturn => uxReturn_6
  6048. # DEBUG BEGIN_STMT
  6049. vPortExitCritical ();
  6050. # DEBUG BEGIN_STMT
  6051. return uxReturn_6;
  6052. }
  6053. eTaskGetState (struct tskTaskControlBlock * xTask)
  6054. {
  6055. uint32_t ulNewBASEPRI;
  6056. BaseType_t x;
  6057. const struct List_t * pxOverflowedDelayedList;
  6058. const struct List_t * pxDelayedList;
  6059. const struct List_t * pxStateList;
  6060. eTaskState eReturn;
  6061. struct TCB_t * pxCurrentTCB.37_1;
  6062. struct xLIST * _2;
  6063. <bb 2> [local count: 357913]:
  6064. # DEBUG BEGIN_STMT
  6065. # DEBUG BEGIN_STMT
  6066. # DEBUG BEGIN_STMT
  6067. # DEBUG pxTCB => xTask_5(D)
  6068. # DEBUG BEGIN_STMT
  6069. if (xTask_5(D) == 0B)
  6070. goto <bb 3>; [30.00%]
  6071. else
  6072. goto <bb 5>; [70.00%]
  6073. <bb 3> [local count: 107374]:
  6074. # DEBUG BEGIN_STMT
  6075. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6076. # DEBUG BEGIN_STMT
  6077. # DEBUG BEGIN_STMT
  6078. __asm__ __volatile__(" mov %0, %1
  6079. msr basepri, %0
  6080. isb
  6081. dsb
  6082. " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
  6083. # DEBUG ulNewBASEPRI => ulNewBASEPRI_15
  6084. <bb 4> [local count: 1073741824]:
  6085. # DEBUG ulNewBASEPRI => NULL
  6086. # DEBUG BEGIN_STMT
  6087. # DEBUG BEGIN_STMT
  6088. # DEBUG BEGIN_STMT
  6089. <bb 15> [local count: 1073741824]:
  6090. goto <bb 4>; [100.00%]
  6091. <bb 5> [local count: 250539]:
  6092. # DEBUG BEGIN_STMT
  6093. # DEBUG BEGIN_STMT
  6094. pxCurrentTCB.37_1 ={v} pxCurrentTCB;
  6095. if (pxCurrentTCB.37_1 == xTask_5(D))
  6096. goto <bb 14>; [46.53%]
  6097. else
  6098. goto <bb 6>; [53.47%]
  6099. <bb 6> [local count: 133963]:
  6100. # DEBUG BEGIN_STMT
  6101. vPortEnterCritical ();
  6102. # DEBUG BEGIN_STMT
  6103. pxStateList_9 = MEM[(const struct TCB_t *)xTask_5(D)].xStateListItem.pvContainer;
  6104. # DEBUG pxStateList => pxStateList_9
  6105. # DEBUG BEGIN_STMT
  6106. pxDelayedList_10 ={v} pxDelayedTaskList;
  6107. # DEBUG pxDelayedList => pxDelayedList_10
  6108. # DEBUG BEGIN_STMT
  6109. pxOverflowedDelayedList_11 ={v} pxOverflowDelayedTaskList;
  6110. # DEBUG pxOverflowedDelayedList => pxOverflowedDelayedList_11
  6111. # DEBUG BEGIN_STMT
  6112. vPortExitCritical ();
  6113. # DEBUG BEGIN_STMT
  6114. if (pxStateList_9 == pxDelayedList_10)
  6115. goto <bb 14>; [18.75%]
  6116. else
  6117. goto <bb 7>; [81.25%]
  6118. <bb 7> [local count: 108845]:
  6119. if (pxStateList_9 == pxOverflowedDelayedList_11)
  6120. goto <bb 14>; [18.75%]
  6121. else
  6122. goto <bb 8>; [81.25%]
  6123. <bb 8> [local count: 88437]:
  6124. # DEBUG BEGIN_STMT
  6125. if (pxStateList_9 == &xSuspendedTaskList)
  6126. goto <bb 9>; [30.00%]
  6127. else
  6128. goto <bb 11>; [70.00%]
  6129. <bb 9> [local count: 26531]:
  6130. # DEBUG BEGIN_STMT
  6131. _2 = MEM[(const struct TCB_t *)xTask_5(D)].xEventListItem.pvContainer;
  6132. if (_2 == 0B)
  6133. goto <bb 10>; [44.32%]
  6134. else
  6135. goto <bb 14>; [55.68%]
  6136. <bb 10> [local count: 11759]:
  6137. # x_4 = PHI <0(9)>
  6138. eReturn_13 = eTaskGetState.part.0 (xTask_5(D));
  6139. goto <bb 14>; [100.00%]
  6140. <bb 11> [local count: 61906]:
  6141. # DEBUG BEGIN_STMT
  6142. if (pxStateList_9 == &xTasksWaitingTermination)
  6143. goto <bb 14>; [18.75%]
  6144. else
  6145. goto <bb 12>; [81.25%]
  6146. <bb 12> [local count: 50298]:
  6147. if (pxStateList_9 == 0B)
  6148. goto <bb 14>; [18.75%]
  6149. else
  6150. goto <bb 13>; [81.25%]
  6151. <bb 13> [local count: 40867]:
  6152. # DEBUG BEGIN_STMT
  6153. # DEBUG eReturn => 1
  6154. <bb 14> [local count: 250539]:
  6155. # eReturn_3 = PHI <0(5), 2(7), 2(9), 4(12), 1(13), 4(11), eReturn_13(10), 2(6)>
  6156. # DEBUG eReturn => eReturn_3
  6157. # DEBUG BEGIN_STMT
  6158. return eReturn_3;
  6159. }
  6160. vTaskDelay (const TickType_t xTicksToDelay)
  6161. {
  6162. uint32_t ulNewBASEPRI;
  6163. BaseType_t xAlreadyYielded;
  6164. long unsigned int uxSchedulerSuspended.36_1;
  6165. <bb 2> [local count: 320519]:
  6166. # DEBUG BEGIN_STMT
  6167. # DEBUG xAlreadyYielded => 0
  6168. # DEBUG BEGIN_STMT
  6169. if (xTicksToDelay_3(D) != 0)
  6170. goto <bb 4>; [50.00%]
  6171. else
  6172. goto <bb 8>; [50.00%]
  6173. <bb 4> [local count: 160260]:
  6174. # DEBUG BEGIN_STMT
  6175. uxSchedulerSuspended.36_1 ={v} uxSchedulerSuspended;
  6176. if (uxSchedulerSuspended.36_1 != 0)
  6177. goto <bb 5>; [67.00%]
  6178. else
  6179. goto <bb 7>; [33.00%]
  6180. <bb 5> [local count: 107374]:
  6181. # DEBUG BEGIN_STMT
  6182. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6183. # DEBUG BEGIN_STMT
  6184. # DEBUG BEGIN_STMT
  6185. __asm__ __volatile__(" mov %0, %1
  6186. msr basepri, %0
  6187. isb
  6188. dsb
  6189. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  6190. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  6191. <bb 6> [local count: 1073741824]:
  6192. # DEBUG ulNewBASEPRI => NULL
  6193. # DEBUG BEGIN_STMT
  6194. # DEBUG BEGIN_STMT
  6195. # DEBUG BEGIN_STMT
  6196. <bb 10> [local count: 1073741824]:
  6197. goto <bb 6>; [100.00%]
  6198. <bb 7> [local count: 52886]:
  6199. # DEBUG BEGIN_STMT
  6200. # DEBUG BEGIN_STMT
  6201. vTaskSuspendAll ();
  6202. # DEBUG BEGIN_STMT
  6203. # DEBUG BEGIN_STMT
  6204. prvAddCurrentTaskToDelayedList (xTicksToDelay_3(D), 0);
  6205. # DEBUG BEGIN_STMT
  6206. xAlreadyYielded_8 = xTaskResumeAll ();
  6207. # DEBUG xAlreadyYielded => xAlreadyYielded_8
  6208. # DEBUG BEGIN_STMT
  6209. # DEBUG BEGIN_STMT
  6210. if (xAlreadyYielded_8 == 0)
  6211. goto <bb 8>; [50.00%]
  6212. else
  6213. goto <bb 9>; [50.00%]
  6214. <bb 8> [local count: 186703]:
  6215. # DEBUG xAlreadyYielded => NULL
  6216. # DEBUG BEGIN_STMT
  6217. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  6218. # DEBUG BEGIN_STMT
  6219. __asm__ __volatile__("dsb" : : : "memory");
  6220. # DEBUG BEGIN_STMT
  6221. __asm__ __volatile__("isb");
  6222. # DEBUG BEGIN_STMT
  6223. <bb 9> [local count: 213145]:
  6224. # DEBUG BEGIN_STMT
  6225. return;
  6226. }
  6227. xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement)
  6228. {
  6229. uint32_t ulNewBASEPRI;
  6230. uint32_t ulNewBASEPRI;
  6231. uint32_t ulNewBASEPRI;
  6232. const TickType_t xConstTickCount;
  6233. BaseType_t xShouldDelay;
  6234. BaseType_t xAlreadyYielded;
  6235. TickType_t xTimeToWake;
  6236. long unsigned int uxSchedulerSuspended.22_1;
  6237. long unsigned int _2;
  6238. long unsigned int _3;
  6239. <bb 2> [local count: 306783]:
  6240. # DEBUG BEGIN_STMT
  6241. # DEBUG BEGIN_STMT
  6242. # DEBUG xShouldDelay => 0
  6243. # DEBUG BEGIN_STMT
  6244. if (pxPreviousWakeTime_7(D) == 0B)
  6245. goto <bb 3>; [30.00%]
  6246. else
  6247. goto <bb 5>; [70.00%]
  6248. <bb 3> [local count: 92035]:
  6249. # DEBUG BEGIN_STMT
  6250. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6251. # DEBUG BEGIN_STMT
  6252. # DEBUG BEGIN_STMT
  6253. __asm__ __volatile__(" mov %0, %1
  6254. msr basepri, %0
  6255. isb
  6256. dsb
  6257. " : "=r" ulNewBASEPRI_21 : "i" 16 : "memory");
  6258. # DEBUG ulNewBASEPRI => ulNewBASEPRI_21
  6259. <bb 4> [local count: 920350133]:
  6260. # DEBUG ulNewBASEPRI => NULL
  6261. # DEBUG BEGIN_STMT
  6262. # DEBUG BEGIN_STMT
  6263. # DEBUG BEGIN_STMT
  6264. <bb 25> [local count: 920350133]:
  6265. goto <bb 4>; [100.00%]
  6266. <bb 5> [local count: 214748]:
  6267. # DEBUG BEGIN_STMT
  6268. # DEBUG BEGIN_STMT
  6269. if (xTimeIncrement_8(D) == 0)
  6270. goto <bb 6>; [50.00%]
  6271. else
  6272. goto <bb 8>; [50.00%]
  6273. <bb 6> [local count: 107374]:
  6274. # DEBUG BEGIN_STMT
  6275. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6276. # DEBUG BEGIN_STMT
  6277. # DEBUG BEGIN_STMT
  6278. __asm__ __volatile__(" mov %0, %1
  6279. msr basepri, %0
  6280. isb
  6281. dsb
  6282. " : "=r" ulNewBASEPRI_22 : "i" 16 : "memory");
  6283. # DEBUG ulNewBASEPRI => ulNewBASEPRI_22
  6284. <bb 7> [local count: 1073741823]:
  6285. # DEBUG ulNewBASEPRI => NULL
  6286. # DEBUG BEGIN_STMT
  6287. # DEBUG BEGIN_STMT
  6288. # DEBUG BEGIN_STMT
  6289. <bb 26> [local count: 1073741824]:
  6290. goto <bb 7>; [100.00%]
  6291. <bb 8> [local count: 107374]:
  6292. # DEBUG BEGIN_STMT
  6293. # DEBUG BEGIN_STMT
  6294. uxSchedulerSuspended.22_1 ={v} uxSchedulerSuspended;
  6295. if (uxSchedulerSuspended.22_1 != 0)
  6296. goto <bb 9>; [67.00%]
  6297. else
  6298. goto <bb 11>; [33.00%]
  6299. <bb 9> [local count: 71941]:
  6300. # DEBUG BEGIN_STMT
  6301. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6302. # DEBUG BEGIN_STMT
  6303. # DEBUG BEGIN_STMT
  6304. __asm__ __volatile__(" mov %0, %1
  6305. msr basepri, %0
  6306. isb
  6307. dsb
  6308. " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory");
  6309. # DEBUG ulNewBASEPRI => ulNewBASEPRI_23
  6310. <bb 10> [local count: 719407021]:
  6311. # DEBUG ulNewBASEPRI => NULL
  6312. # DEBUG BEGIN_STMT
  6313. # DEBUG BEGIN_STMT
  6314. # DEBUG BEGIN_STMT
  6315. <bb 27> [local count: 719407021]:
  6316. goto <bb 10>; [100.00%]
  6317. <bb 11> [local count: 35433]:
  6318. # DEBUG BEGIN_STMT
  6319. # DEBUG BEGIN_STMT
  6320. vTaskSuspendAll ();
  6321. # DEBUG BEGIN_STMT
  6322. xConstTickCount_11 ={v} xTickCount;
  6323. # DEBUG xConstTickCount => xConstTickCount_11
  6324. # DEBUG BEGIN_STMT
  6325. _2 = *pxPreviousWakeTime_7(D);
  6326. xTimeToWake_12 = _2 + xTimeIncrement_8(D);
  6327. # DEBUG xTimeToWake => xTimeToWake_12
  6328. # DEBUG BEGIN_STMT
  6329. if (_2 > xConstTickCount_11)
  6330. goto <bb 12>; [50.00%]
  6331. else
  6332. goto <bb 17>; [50.00%]
  6333. <bb 12> [local count: 17717]:
  6334. # DEBUG BEGIN_STMT
  6335. if (_2 > xTimeToWake_12)
  6336. goto <bb 14>; [50.00%]
  6337. else
  6338. goto <bb 13>; [50.00%]
  6339. <bb 13> [local count: 8858]:
  6340. # DEBUG xShouldDelay => 0
  6341. # DEBUG BEGIN_STMT
  6342. *pxPreviousWakeTime_7(D) = xTimeToWake_12;
  6343. # DEBUG BEGIN_STMT
  6344. goto <bb 22>; [100.00%]
  6345. <bb 14> [local count: 8858]:
  6346. if (xConstTickCount_11 < xTimeToWake_12)
  6347. goto <bb 16>; [50.00%]
  6348. else
  6349. goto <bb 15>; [50.00%]
  6350. <bb 15> [local count: 4429]:
  6351. # DEBUG xShouldDelay => 0
  6352. # DEBUG BEGIN_STMT
  6353. *pxPreviousWakeTime_7(D) = xTimeToWake_12;
  6354. # DEBUG BEGIN_STMT
  6355. goto <bb 22>; [100.00%]
  6356. <bb 16> [local count: 4429]:
  6357. # DEBUG BEGIN_STMT
  6358. # DEBUG xShouldDelay => 1
  6359. # DEBUG BEGIN_STMT
  6360. *pxPreviousWakeTime_7(D) = xTimeToWake_12;
  6361. # DEBUG BEGIN_STMT
  6362. goto <bb 21>; [100.00%]
  6363. <bb 17> [local count: 17717]:
  6364. # DEBUG BEGIN_STMT
  6365. if (_2 > xTimeToWake_12)
  6366. goto <bb 19>; [50.00%]
  6367. else
  6368. goto <bb 18>; [50.00%]
  6369. <bb 18> [local count: 8858]:
  6370. if (xConstTickCount_11 < xTimeToWake_12)
  6371. goto <bb 19>; [50.00%]
  6372. else
  6373. goto <bb 20>; [50.00%]
  6374. <bb 19> [local count: 13288]:
  6375. # DEBUG BEGIN_STMT
  6376. # DEBUG xShouldDelay => 1
  6377. # DEBUG BEGIN_STMT
  6378. *pxPreviousWakeTime_7(D) = xTimeToWake_12;
  6379. # DEBUG BEGIN_STMT
  6380. goto <bb 21>; [100.00%]
  6381. <bb 20> [local count: 4429]:
  6382. # DEBUG xShouldDelay => 0
  6383. # DEBUG BEGIN_STMT
  6384. *pxPreviousWakeTime_7(D) = xTimeToWake_12;
  6385. # DEBUG BEGIN_STMT
  6386. goto <bb 22>; [100.00%]
  6387. <bb 21> [local count: 17717]:
  6388. # DEBUG BEGIN_STMT
  6389. # DEBUG BEGIN_STMT
  6390. _3 = xTimeToWake_12 - xConstTickCount_11;
  6391. prvAddCurrentTaskToDelayedList (_3, 0);
  6392. <bb 22> [local count: 35433]:
  6393. # xShouldDelay_29 = PHI <0(20), 1(21), 0(15), 0(13)>
  6394. # DEBUG BEGIN_STMT
  6395. # DEBUG BEGIN_STMT
  6396. xAlreadyYielded_16 = xTaskResumeAll ();
  6397. # DEBUG xAlreadyYielded => xAlreadyYielded_16
  6398. # DEBUG BEGIN_STMT
  6399. if (xAlreadyYielded_16 == 0)
  6400. goto <bb 23>; [50.00%]
  6401. else
  6402. goto <bb 24>; [50.00%]
  6403. <bb 23> [local count: 17717]:
  6404. # DEBUG BEGIN_STMT
  6405. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  6406. # DEBUG BEGIN_STMT
  6407. __asm__ __volatile__("dsb" : : : "memory");
  6408. # DEBUG BEGIN_STMT
  6409. __asm__ __volatile__("isb");
  6410. # DEBUG BEGIN_STMT
  6411. <bb 24> [local count: 35433]:
  6412. # DEBUG BEGIN_STMT
  6413. # DEBUG BEGIN_STMT
  6414. return xShouldDelay_29;
  6415. }
  6416. vTaskDelete (struct tskTaskControlBlock * xTaskToDelete)
  6417. {
  6418. uint32_t ulNewBASEPRI;
  6419. struct ListItem_t * _1;
  6420. struct xLIST * _2;
  6421. struct ListItem_t * _3;
  6422. long unsigned int uxTaskNumber.13_4;
  6423. long unsigned int _5;
  6424. struct TCB_t * pxCurrentTCB.14_6;
  6425. long unsigned int uxDeletedTasksWaitingCleanUp.15_7;
  6426. long unsigned int _8;
  6427. long unsigned int uxCurrentNumberOfTasks.16_9;
  6428. long unsigned int _10;
  6429. long int xSchedulerRunning.17_11;
  6430. struct TCB_t * pxCurrentTCB.18_12;
  6431. long unsigned int uxSchedulerSuspended.19_13;
  6432. struct TCB_t * iftmp.12_14;
  6433. struct TCB_t * iftmp.12_21;
  6434. <bb 2> [local count: 1431653]:
  6435. # DEBUG BEGIN_STMT
  6436. # DEBUG BEGIN_STMT
  6437. vPortEnterCritical ();
  6438. # DEBUG BEGIN_STMT
  6439. if (xTaskToDelete_20(D) == 0B)
  6440. goto <bb 3>; [30.00%]
  6441. else
  6442. goto <bb 4>; [70.00%]
  6443. <bb 3> [local count: 429496]:
  6444. iftmp.12_21 ={v} pxCurrentTCB;
  6445. <bb 4> [local count: 1431653]:
  6446. # iftmp.12_14 = PHI <iftmp.12_21(3), xTaskToDelete_20(D)(2)>
  6447. # DEBUG pxTCB => iftmp.12_14
  6448. # DEBUG BEGIN_STMT
  6449. _1 = &iftmp.12_14->xStateListItem;
  6450. uxListRemove (_1);
  6451. # DEBUG BEGIN_STMT
  6452. # DEBUG BEGIN_STMT
  6453. _2 = iftmp.12_14->xEventListItem.pvContainer;
  6454. if (_2 != 0B)
  6455. goto <bb 5>; [53.47%]
  6456. else
  6457. goto <bb 6>; [46.53%]
  6458. <bb 5> [local count: 765505]:
  6459. # DEBUG BEGIN_STMT
  6460. _3 = &iftmp.12_14->xEventListItem;
  6461. uxListRemove (_3);
  6462. <bb 6> [local count: 1431653]:
  6463. # DEBUG BEGIN_STMT
  6464. # DEBUG BEGIN_STMT
  6465. uxTaskNumber.13_4 = uxTaskNumber;
  6466. _5 = uxTaskNumber.13_4 + 1;
  6467. uxTaskNumber = _5;
  6468. # DEBUG BEGIN_STMT
  6469. pxCurrentTCB.14_6 ={v} pxCurrentTCB;
  6470. if (pxCurrentTCB.14_6 == iftmp.12_14)
  6471. goto <bb 7>; [30.00%]
  6472. else
  6473. goto <bb 8>; [70.00%]
  6474. <bb 7> [local count: 429496]:
  6475. # DEBUG BEGIN_STMT
  6476. vListInsertEnd (&xTasksWaitingTermination, _1);
  6477. # DEBUG BEGIN_STMT
  6478. uxDeletedTasksWaitingCleanUp.15_7 ={v} uxDeletedTasksWaitingCleanUp;
  6479. _8 = uxDeletedTasksWaitingCleanUp.15_7 + 1;
  6480. uxDeletedTasksWaitingCleanUp ={v} _8;
  6481. # DEBUG BEGIN_STMT
  6482. # DEBUG BEGIN_STMT
  6483. goto <bb 9>; [100.00%]
  6484. <bb 8> [local count: 1002157]:
  6485. # DEBUG BEGIN_STMT
  6486. uxCurrentNumberOfTasks.16_9 ={v} uxCurrentNumberOfTasks;
  6487. _10 = uxCurrentNumberOfTasks.16_9 + 4294967295;
  6488. uxCurrentNumberOfTasks ={v} _10;
  6489. # DEBUG BEGIN_STMT
  6490. # DEBUG BEGIN_STMT
  6491. prvDeleteTCB (iftmp.12_14);
  6492. # DEBUG BEGIN_STMT
  6493. prvResetNextTaskUnblockTime ();
  6494. <bb 9> [local count: 1431653]:
  6495. # DEBUG BEGIN_STMT
  6496. vPortExitCritical ();
  6497. # DEBUG BEGIN_STMT
  6498. xSchedulerRunning.17_11 ={v} xSchedulerRunning;
  6499. if (xSchedulerRunning.17_11 != 0)
  6500. goto <bb 10>; [50.00%]
  6501. else
  6502. goto <bb 15>; [50.00%]
  6503. <bb 10> [local count: 715827]:
  6504. # DEBUG BEGIN_STMT
  6505. pxCurrentTCB.18_12 ={v} pxCurrentTCB;
  6506. if (pxCurrentTCB.18_12 == iftmp.12_14)
  6507. goto <bb 11>; [30.00%]
  6508. else
  6509. goto <bb 15>; [70.00%]
  6510. <bb 11> [local count: 214748]:
  6511. # DEBUG BEGIN_STMT
  6512. uxSchedulerSuspended.19_13 ={v} uxSchedulerSuspended;
  6513. if (uxSchedulerSuspended.19_13 != 0)
  6514. goto <bb 12>; [50.00%]
  6515. else
  6516. goto <bb 14>; [50.00%]
  6517. <bb 12> [local count: 107374]:
  6518. # DEBUG BEGIN_STMT
  6519. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6520. # DEBUG BEGIN_STMT
  6521. # DEBUG BEGIN_STMT
  6522. __asm__ __volatile__(" mov %0, %1
  6523. msr basepri, %0
  6524. isb
  6525. dsb
  6526. " : "=r" ulNewBASEPRI_34 : "i" 16 : "memory");
  6527. # DEBUG ulNewBASEPRI => ulNewBASEPRI_34
  6528. <bb 13> [local count: 1073741824]:
  6529. # DEBUG ulNewBASEPRI => NULL
  6530. # DEBUG BEGIN_STMT
  6531. # DEBUG BEGIN_STMT
  6532. # DEBUG BEGIN_STMT
  6533. <bb 16> [local count: 1073741824]:
  6534. goto <bb 13>; [100.00%]
  6535. <bb 14> [local count: 107374]:
  6536. # DEBUG BEGIN_STMT
  6537. # DEBUG BEGIN_STMT
  6538. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  6539. # DEBUG BEGIN_STMT
  6540. __asm__ __volatile__("dsb" : : : "memory");
  6541. # DEBUG BEGIN_STMT
  6542. __asm__ __volatile__("isb");
  6543. # DEBUG BEGIN_STMT
  6544. <bb 15> [local count: 1324279]:
  6545. # DEBUG BEGIN_STMT
  6546. return;
  6547. }
  6548. prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB)
  6549. {
  6550. struct ListItem_t * const pxIndex;
  6551. long unsigned int uxCurrentNumberOfTasks.2_1;
  6552. long unsigned int _2;
  6553. struct TCB_t * pxCurrentTCB.3_3;
  6554. long unsigned int uxCurrentNumberOfTasks.4_4;
  6555. long int xSchedulerRunning.5_5;
  6556. struct TCB_t * pxCurrentTCB.6_6;
  6557. long unsigned int _7;
  6558. long unsigned int _8;
  6559. long unsigned int uxTaskNumber.7_9;
  6560. long unsigned int _10;
  6561. long unsigned int _11;
  6562. long unsigned int uxTopReadyPriority.9_12;
  6563. struct xLIST_ITEM * _13;
  6564. struct xLIST_ITEM * _14;
  6565. struct ListItem_t * _15;
  6566. struct List_t * _16;
  6567. long unsigned int _17;
  6568. long unsigned int _18;
  6569. long int xSchedulerRunning.10_19;
  6570. struct TCB_t * pxCurrentTCB.11_20;
  6571. long unsigned int _21;
  6572. long unsigned int _22;
  6573. <bb 2> [local count: 1073741821]:
  6574. # DEBUG BEGIN_STMT
  6575. vPortEnterCritical ();
  6576. # DEBUG BEGIN_STMT
  6577. uxCurrentNumberOfTasks.2_1 ={v} uxCurrentNumberOfTasks;
  6578. _2 = uxCurrentNumberOfTasks.2_1 + 1;
  6579. uxCurrentNumberOfTasks ={v} _2;
  6580. # DEBUG BEGIN_STMT
  6581. pxCurrentTCB.3_3 ={v} pxCurrentTCB;
  6582. if (pxCurrentTCB.3_3 == 0B)
  6583. goto <bb 3>; [30.00%]
  6584. else
  6585. goto <bb 5>; [70.00%]
  6586. <bb 3> [local count: 322122546]:
  6587. # DEBUG BEGIN_STMT
  6588. pxCurrentTCB ={v} pxNewTCB_29(D);
  6589. # DEBUG BEGIN_STMT
  6590. uxCurrentNumberOfTasks.4_4 ={v} uxCurrentNumberOfTasks;
  6591. if (uxCurrentNumberOfTasks.4_4 == 1)
  6592. goto <bb 4>; [20.24%]
  6593. else
  6594. goto <bb 8>; [79.76%]
  6595. <bb 4> [local count: 65197603]:
  6596. # DEBUG BEGIN_STMT
  6597. prvInitialiseTaskLists ();
  6598. goto <bb 8>; [100.00%]
  6599. <bb 5> [local count: 751619275]:
  6600. # DEBUG BEGIN_STMT
  6601. xSchedulerRunning.5_5 ={v} xSchedulerRunning;
  6602. if (xSchedulerRunning.5_5 == 0)
  6603. goto <bb 6>; [50.00%]
  6604. else
  6605. goto <bb 8>; [50.00%]
  6606. <bb 6> [local count: 375809637]:
  6607. # DEBUG BEGIN_STMT
  6608. pxCurrentTCB.6_6 ={v} pxCurrentTCB;
  6609. _7 = pxCurrentTCB.6_6->uxPriority;
  6610. _8 = pxNewTCB_29(D)->uxPriority;
  6611. if (_7 <= _8)
  6612. goto <bb 7>; [50.00%]
  6613. else
  6614. goto <bb 8>; [50.00%]
  6615. <bb 7> [local count: 187904819]:
  6616. # DEBUG BEGIN_STMT
  6617. pxCurrentTCB ={v} pxNewTCB_29(D);
  6618. <bb 8> [local count: 1073741823]:
  6619. # DEBUG BEGIN_STMT
  6620. # DEBUG BEGIN_STMT
  6621. uxTaskNumber.7_9 = uxTaskNumber;
  6622. _10 = uxTaskNumber.7_9 + 1;
  6623. uxTaskNumber = _10;
  6624. # DEBUG BEGIN_STMT
  6625. pxNewTCB_29(D)->uxTCBNumber = _10;
  6626. # DEBUG BEGIN_STMT
  6627. # DEBUG BEGIN_STMT
  6628. # DEBUG BEGIN_STMT
  6629. _11 = pxNewTCB_29(D)->uxPriority;
  6630. uxTopReadyPriority.9_12 ={v} uxTopReadyPriority;
  6631. if (_11 > uxTopReadyPriority.9_12)
  6632. goto <bb 9>; [50.00%]
  6633. else
  6634. goto <bb 10>; [50.00%]
  6635. <bb 9> [local count: 536870911]:
  6636. # DEBUG BEGIN_STMT
  6637. uxTopReadyPriority ={v} _11;
  6638. <bb 10> [local count: 1073741823]:
  6639. # DEBUG BEGIN_STMT
  6640. # DEBUG BEGIN_STMT
  6641. pxIndex_36 = pxReadyTasksLists[_11].pxIndex;
  6642. # DEBUG pxIndex => pxIndex_36
  6643. # DEBUG BEGIN_STMT
  6644. # DEBUG BEGIN_STMT
  6645. # DEBUG BEGIN_STMT
  6646. pxNewTCB_29(D)->xStateListItem.pxNext = pxIndex_36;
  6647. # DEBUG BEGIN_STMT
  6648. _13 = pxIndex_36->pxPrevious;
  6649. pxNewTCB_29(D)->xStateListItem.pxPrevious = _13;
  6650. # DEBUG BEGIN_STMT
  6651. _14 = pxIndex_36->pxPrevious;
  6652. _15 = &pxNewTCB_29(D)->xStateListItem;
  6653. _14->pxNext = _15;
  6654. # DEBUG BEGIN_STMT
  6655. pxIndex_36->pxPrevious = _15;
  6656. # DEBUG BEGIN_STMT
  6657. _16 = &pxReadyTasksLists[_11];
  6658. pxNewTCB_29(D)->xStateListItem.pvContainer = _16;
  6659. # DEBUG BEGIN_STMT
  6660. _17 ={v} pxReadyTasksLists[_11].uxNumberOfItems;
  6661. _18 = _17 + 1;
  6662. pxReadyTasksLists[_11].uxNumberOfItems ={v} _18;
  6663. # DEBUG BEGIN_STMT
  6664. # DEBUG BEGIN_STMT
  6665. # DEBUG BEGIN_STMT
  6666. # DEBUG BEGIN_STMT
  6667. vPortExitCritical ();
  6668. # DEBUG BEGIN_STMT
  6669. xSchedulerRunning.10_19 ={v} xSchedulerRunning;
  6670. if (xSchedulerRunning.10_19 != 0)
  6671. goto <bb 11>; [50.00%]
  6672. else
  6673. goto <bb 13>; [50.00%]
  6674. <bb 11> [local count: 536870911]:
  6675. # DEBUG BEGIN_STMT
  6676. pxCurrentTCB.11_20 ={v} pxCurrentTCB;
  6677. _21 = pxCurrentTCB.11_20->uxPriority;
  6678. _22 = pxNewTCB_29(D)->uxPriority;
  6679. if (_21 < _22)
  6680. goto <bb 12>; [50.00%]
  6681. else
  6682. goto <bb 13>; [50.00%]
  6683. <bb 12> [local count: 268435456]:
  6684. # DEBUG BEGIN_STMT
  6685. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  6686. # DEBUG BEGIN_STMT
  6687. __asm__ __volatile__("dsb" : : : "memory");
  6688. # DEBUG BEGIN_STMT
  6689. __asm__ __volatile__("isb");
  6690. # DEBUG BEGIN_STMT
  6691. <bb 13> [local count: 1073741824]:
  6692. # DEBUG BEGIN_STMT
  6693. return;
  6694. }
  6695. xTaskCreate (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask)
  6696. {
  6697. StackType_t * pxStack;
  6698. BaseType_t xReturn;
  6699. struct TCB_t * pxNewTCB;
  6700. unsigned int _1;
  6701. unsigned int _2;
  6702. <bb 2> [local count: 1073741824]:
  6703. # DEBUG BEGIN_STMT
  6704. # DEBUG BEGIN_STMT
  6705. # DEBUG BEGIN_STMT
  6706. # DEBUG BEGIN_STMT
  6707. _1 = (unsigned int) usStackDepth_6(D);
  6708. _2 = _1 * 4;
  6709. pxStack_9 = pvPortMalloc (_2);
  6710. # DEBUG pxStack => pxStack_9
  6711. # DEBUG BEGIN_STMT
  6712. if (pxStack_9 != 0B)
  6713. goto <bb 4>; [53.47%]
  6714. else
  6715. goto <bb 9>; [46.53%]
  6716. <bb 4> [local count: 574129754]:
  6717. # DEBUG BEGIN_STMT
  6718. pxNewTCB_11 = pvPortMalloc (88);
  6719. # DEBUG pxNewTCB => pxNewTCB_11
  6720. # DEBUG BEGIN_STMT
  6721. if (pxNewTCB_11 != 0B)
  6722. goto <bb 5>; [82.57%]
  6723. else
  6724. goto <bb 6>; [17.43%]
  6725. <bb 5> [local count: 474058937]:
  6726. # DEBUG BEGIN_STMT
  6727. pxNewTCB_11->pxStack = pxStack_9;
  6728. goto <bb 7>; [100.00%]
  6729. <bb 6> [local count: 100070816]:
  6730. # DEBUG BEGIN_STMT
  6731. vPortFree (pxStack_9);
  6732. <bb 7> [local count: 574129754]:
  6733. # DEBUG pxNewTCB => pxNewTCB_11
  6734. # DEBUG BEGIN_STMT
  6735. if (pxNewTCB_11 != 0B)
  6736. goto <bb 8>; [53.47%]
  6737. else
  6738. goto <bb 9>; [46.53%]
  6739. <bb 8> [local count: 306987179]:
  6740. # DEBUG BEGIN_STMT
  6741. # DEBUG D#1 => 0B
  6742. prvInitialiseNewTask.isra.0 (pxTaskCode_14(D), pcName_15(D), _1, pvParameters_16(D), uxPriority_17(D), pxCreatedTask_18(D), pxNewTCB_11);
  6743. # DEBUG BEGIN_STMT
  6744. prvAddNewTaskToReadyList (pxNewTCB_11);
  6745. # DEBUG BEGIN_STMT
  6746. # DEBUG xReturn => 1
  6747. <bb 9> [local count: 1073741824]:
  6748. # xReturn_3 = PHI <1(8), -1(7), -1(2)>
  6749. # DEBUG pxNewTCB => NULL
  6750. # DEBUG xReturn => xReturn_3
  6751. # DEBUG BEGIN_STMT
  6752. return xReturn_3;
  6753. }