tasks.c.071i.devirt 260 KB

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