123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236 |
- Marking local functions:
- Marking externally visible functions: ulTaskGenericNotifyValueClear xTaskGenericNotifyStateClear vTaskGenericNotifyGiveFromISR xTaskGenericNotifyFromISR xTaskGenericNotify xTaskGenericNotifyWait ulTaskGenericNotifyTake pvTaskIncrementMutexHeldCount uxTaskResetEventItemValue vTaskList vTaskPriorityDisinheritAfterTimeout xTaskPriorityDisinherit xTaskPriorityInherit xTaskGetSchedulerState xTaskGetCurrentTaskHandle uxTaskGetStackHighWaterMark vTaskGetInfo vTaskSetTaskNumber uxTaskGetTaskNumber vTaskMissedYield xTaskCheckForTimeOut vTaskInternalSetTimeOutState vTaskSetTimeOutState vTaskRemoveFromUnorderedEventList xTaskRemoveFromEventList vTaskPlaceOnEventListRestricted vTaskPlaceOnUnorderedEventList vTaskPlaceOnEventList vTaskSwitchContext xTaskIncrementTick xTaskAbortDelay xTaskCatchUpTicks uxTaskGetSystemState xTaskGetHandle pcTaskGetName uxTaskGetNumberOfTasks xTaskGetTickCountFromISR xTaskGetTickCount xTaskResumeAll vTaskSuspendAll vTaskEndScheduler vTaskStartScheduler xTaskResumeFromISR vTaskResume vTaskSuspend vTaskPrioritySet uxTaskPriorityGetFromISR uxTaskPriorityGet eTaskGetState vTaskDelay xTaskDelayUntil vTaskDelete xTaskCreate
- Marking externally visible variables: uxTopUsedPriority pxCurrentTCB
- Reclaiming functions:
- Reclaiming variables:
- Clearing address taken flags:
- Symbol table:
- sprintf/112 (sprintf) @06e1a0e0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskList/84
- Calls:
- strcpy/111 (strcpy) @06e027e0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: prvWriteNameToBuffer/83
- Calls:
- vListInitialise/110 (vListInitialise) @06dc9d20
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70
- Calls:
- vListInsert/109 (vListInsert) @06da9c40
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskPlaceOnEventList/58 prvAddCurrentTaskToDelayedList/94 prvAddCurrentTaskToDelayedList/94
- Calls:
- strlen/108 (strlen) @06da9460
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskList/84 prvWriteNameToBuffer/83 xTaskGetHandle/52
- Calls:
- vPortEndScheduler/107 (vPortEndScheduler) @06d96a80
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskEndScheduler/44
- Calls:
- xPortStartScheduler/106 (xPortStartScheduler) @06d967e0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskStartScheduler/43
- Calls:
- xTimerCreateTimerTask/105 (xTimerCreateTimerTask) @06d96700
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskStartScheduler/43
- Calls:
- vPortValidateInterruptPriority/104 (vPortValidateInterruptPriority) @0677a9a0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskGetTickCountFromISR/48 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37
- Calls:
- vListInsertEnd/103 (vListInsertEnd) @0677a0e0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskSuspend/39 vTaskDelete/32 xTaskResumeFromISR/42
- Calls:
- uxListRemove/102 (uxListRemove) @0677a000
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: prvAddCurrentTaskToDelayedList/94 vTaskPriorityDisinheritAfterTimeout/82 xTaskPriorityDisinherit/81 xTaskPriorityInherit/80 xTaskAbortDelay/55 xTaskAbortDelay/55 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 vTaskDelete/32 prvCheckTasksWaitingTermination/71 xTaskResumeFromISR/42 vTaskResume/41 vTaskPrioritySet/38
- Calls:
- vPortExitCritical/101 (vPortExitCritical) @06d5b000
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 prvCheckTasksWaitingTermination/71 prvAddNewTaskToReadyList/31 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskResume/41 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35
- Calls:
- vPortEnterCritical/100 (vPortEnterCritical) @06d5be00
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 prvCheckTasksWaitingTermination/71 prvAddNewTaskToReadyList/31 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskResume/41 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35
- Calls:
- pxPortInitialiseStack/99 (pxPortInitialiseStack) @06d5bb60
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: prvInitialiseNewTask/30
- Calls:
- vListInitialiseItem/98 (vListInitialiseItem) @06d5ba80
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30
- Calls:
- memset/97 (memset) @06d5b9a0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30 prvInitialiseNewTask/30
- Calls:
- vPortFree/96 (vPortFree) @06d5b7e0
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskList/84 prvDeleteTCB/76 prvDeleteTCB/76 xTaskCreate/29
- Calls:
- pvPortMalloc/95 (pvPortMalloc) @06d5b700
- Type: function
- Visibility: external public
- References:
- Referring:
- Availability: not_available
- Function flags:
- Called by: vTaskList/84 xTaskCreate/29 xTaskCreate/29
- Calls:
- prvAddCurrentTaskToDelayedList/94 (prvAddCurrentTaskToDelayedList) @06d5b2a0
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)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)pxCurrentTCB/7 (read)pxOverflowDelayedTaskList/12 (read)pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxCurrentTCB/7 (read)xNextTaskUnblockTime/25 (read)xNextTaskUnblockTime/25 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 vTaskPlaceOnEventListRestricted/60 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnEventList/58 vTaskDelay/34 xTaskDelayUntil/33
- Calls: vListInsert/109 vListInsert/109 uxListRemove/102
- ulTaskGenericNotifyValueClear/93 (ulTaskGenericNotifyValueClear) @06d4ab60
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100
- xTaskGenericNotifyStateClear/92 (xTaskGenericNotifyStateClear) @06d4aee0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100
- vTaskGenericNotifyGiveFromISR/91 (vTaskGenericNotifyGiveFromISR) @06d4aa80
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortValidateInterruptPriority/104
- xTaskGenericNotifyFromISR/90 (xTaskGenericNotifyFromISR) @06d4a620
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortValidateInterruptPriority/104
- xTaskGenericNotify/89 (xTaskGenericNotify) @06d4a0e0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100
- xTaskGenericNotifyWait/88 (xTaskGenericNotifyWait) @06d39000
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100 vPortExitCritical/101 prvAddCurrentTaskToDelayedList/94 vPortEnterCritical/100
- ulTaskGenericNotifyTake/87 (ulTaskGenericNotifyTake) @06d39b60
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100 vPortExitCritical/101 prvAddCurrentTaskToDelayedList/94 vPortEnterCritical/100
- pvTaskIncrementMutexHeldCount/86 (pvTaskIncrementMutexHeldCount) @06d39700
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- uxTaskResetEventItemValue/85 (uxTaskResetEventItemValue) @06d39460
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- vTaskList/84 (vTaskList) @06d391c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortFree/96 strlen/108 sprintf/112 prvWriteNameToBuffer/83 uxTaskGetSystemState/53 pvPortMalloc/95
- prvWriteNameToBuffer/83 (prvWriteNameToBuffer) @06d1fe00
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskList/84
- Calls: strlen/108 strcpy/111
- vTaskPriorityDisinheritAfterTimeout/82 (vTaskPriorityDisinheritAfterTimeout) @06d1f700
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: uxListRemove/102
- xTaskPriorityDisinherit/81 (xTaskPriorityDisinherit) @06d1fd20
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: uxListRemove/102
- xTaskPriorityInherit/80 (xTaskPriorityInherit) @06d1f8c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: uxListRemove/102
- xTaskGetSchedulerState/79 (xTaskGetSchedulerState) @06d1f620
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- xTaskGetCurrentTaskHandle/78 (xTaskGetCurrentTaskHandle) @06d1f380
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- prvResetNextTaskUnblockTime/77 (prvResetNextTaskUnblockTime) @06d1f0e0
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References: pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskResumeAll/46 xTaskIncrementTick/56 vTaskSuspend/39 vTaskDelete/32
- Calls:
- prvDeleteTCB/76 (prvDeleteTCB) @06d13c40
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskDelete/32 prvCheckTasksWaitingTermination/71
- Calls: vPortFree/96 vPortFree/96
- uxTaskGetStackHighWaterMark/75 (uxTaskGetStackHighWaterMark) @06d13620
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: prvTaskCheckFreeStackSpace/74
- prvTaskCheckFreeStackSpace/74 (prvTaskCheckFreeStackSpace) @06d13e00
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskGetInfo/72 uxTaskGetStackHighWaterMark/75
- Calls:
- prvListTasksWithinSingleList/73 (prvListTasksWithinSingleList) @06d13b60
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53
- Calls: vTaskGetInfo/72
- vTaskGetInfo/72 (vTaskGetInfo) @06d138c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by: prvListTasksWithinSingleList/73
- Calls: prvTaskCheckFreeStackSpace/74 eTaskGetState/35 xTaskResumeAll/46 vTaskSuspendAll/45
- prvCheckTasksWaitingTermination/71 (prvCheckTasksWaitingTermination) @06d13540
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References: xTasksWaitingTermination/14 (read)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxDeletedTasksWaitingCleanUp/15 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by: prvIdleTask/69
- Calls: prvDeleteTCB/76 vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100
- prvInitialiseTaskLists/70 (prvInitialiseTaskLists) @06d131c0
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by: prvAddNewTaskToReadyList/31
- Calls: vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110
- prvIdleTask/69 (prvIdleTask) @06d0ee00
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- Address is taken.
- References: pxReadyTasksLists/8 (read)
- Referring: vTaskStartScheduler/43 (addr)
- Availability: available
- Function flags: body
- Called by:
- Calls: prvCheckTasksWaitingTermination/71
- vTaskSetTaskNumber/68 (vTaskSetTaskNumber) @06d0e1c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- uxTaskGetTaskNumber/67 (uxTaskGetTaskNumber) @06d0ed20
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- vTaskMissedYield/66 (vTaskMissedYield) @06d0ea80
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xYieldPending/22 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- xTaskCheckForTimeOut/65 (xTaskCheckForTimeOut) @06d0e7e0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xNumOfOverflows/23 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vTaskInternalSetTimeOutState/64 vPortEnterCritical/100
- vTaskInternalSetTimeOutState/64 (vTaskInternalSetTimeOutState) @06d0e380
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xNumOfOverflows/23 (read)xTickCount/18 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskCheckForTimeOut/65
- Calls:
- vTaskSetTimeOutState/63 (vTaskSetTimeOutState) @06d0e0e0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xNumOfOverflows/23 (read)xTickCount/18 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100
- vTaskRemoveFromUnorderedEventList/62 (vTaskRemoveFromUnorderedEventList) @06cca9a0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- xTaskRemoveFromEventList/61 (xTaskRemoveFromEventList) @06ccad20
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- vTaskPlaceOnEventListRestricted/60 (vTaskPlaceOnEventListRestricted) @06cca8c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: prvAddCurrentTaskToDelayedList/94
- vTaskPlaceOnUnorderedEventList/59 (vTaskPlaceOnUnorderedEventList) @06cca540
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: prvAddCurrentTaskToDelayedList/94
- vTaskPlaceOnEventList/58 (vTaskPlaceOnEventList) @06cca000
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: prvAddCurrentTaskToDelayedList/94 vListInsert/109
- vTaskSwitchContext/57 (vTaskSwitchContext) @06c5f380
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)xYieldPending/22 (write)xYieldPending/22 (write)uxTopReadyPriority/19 (read)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxCurrentTCB/7 (write)uxTopReadyPriority/19 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskSuspend/39
- Calls:
- xTaskIncrementTick/56 (xTaskIncrementTick) @06c5fc40
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)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)xPendedTicks/21 (read)xPendedTicks/21 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskResumeAll/46
- Calls: prvResetNextTaskUnblockTime/77
- xTaskAbortDelay/55 (xTaskAbortDelay) @06c5f620
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: xTaskResumeAll/46 vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100 uxListRemove/102 eTaskGetState/35 vTaskSuspendAll/45
- xTaskCatchUpTicks/54 (xTaskCatchUpTicks) @06c5f2a0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)xPendedTicks/21 (read)xPendedTicks/21 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: xTaskResumeAll/46 vTaskSuspendAll/45
- uxTaskGetSystemState/53 (uxTaskGetSystemState) @06c56e00
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxCurrentNumberOfTasks/17 (read)pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr)
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskList/84
- Calls: xTaskResumeAll/46 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 vTaskSuspendAll/45
- xTaskGetHandle/52 (xTaskGetHandle) @06c56700
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: xTaskResumeAll/46 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 vTaskSuspendAll/45 strlen/108
- prvSearchForNameWithinSingleList/51 (prvSearchForNameWithinSingleList) @06c561c0
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52
- Calls:
- pcTaskGetName/50 (pcTaskGetName) @06c56d20
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- uxTaskGetNumberOfTasks/49 (uxTaskGetNumberOfTasks) @06c568c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxCurrentNumberOfTasks/17 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- xTaskGetTickCountFromISR/48 (xTaskGetTickCountFromISR) @06c56620
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xTickCount/18 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortValidateInterruptPriority/104
- xTaskGetTickCount/47 (xTaskGetTickCount) @06c56380
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xTickCount/18 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls:
- xTaskResumeAll/46 (xTaskResumeAll) @06c560e0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)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)
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskDelay/34 xTaskDelayUntil/33 uxTaskGetSystemState/53 vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52
- Calls: vPortExitCritical/101 xTaskIncrementTick/56 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100
- vTaskSuspendAll/45 (vTaskSuspendAll) @06c450e0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskDelay/34 xTaskDelayUntil/33 uxTaskGetSystemState/53 vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52
- Calls:
- vTaskEndScheduler/44 (vTaskEndScheduler) @06c45d20
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: xSchedulerRunning/20 (write)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortEndScheduler/107
- vTaskStartScheduler/43 (vTaskStartScheduler) @06c45a80
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: prvIdleTask/69 (addr)xIdleTaskHandle/26 (addr)xNextTaskUnblockTime/25 (write)xSchedulerRunning/20 (write)xTickCount/18 (write)uxTopUsedPriority/27 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: xPortStartScheduler/106 xTimerCreateTimerTask/105 xTaskCreate/29
- xTaskResumeFromISR/42 (xTaskResumeFromISR) @06c457e0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vListInsertEnd/103 uxListRemove/102 prvTaskIsTaskSuspended/40 vPortValidateInterruptPriority/104
- vTaskResume/41 (vTaskResume) @06c45460
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 uxListRemove/102 prvTaskIsTaskSuspended/40 vPortEnterCritical/100
- prvTaskIsTaskSuspended/40 (prvTaskIsTaskSuspended) @06c45000
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References: xSuspendedTaskList/16 (addr)xPendingReadyList/13 (addr)
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskResumeFromISR/42 vTaskResume/41
- Calls:
- vTaskSuspend/39 (vTaskSuspend) @06c38380
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vTaskSwitchContext/57 vPortExitCritical/101 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100 vPortExitCritical/101 vListInsertEnd/103 uxListRemove/102 uxListRemove/102 vPortEnterCritical/100
- vTaskPrioritySet/38 (vTaskPrioritySet) @06c38b60
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100
- uxTaskPriorityGetFromISR/37 (uxTaskPriorityGetFromISR) @06c38620
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortValidateInterruptPriority/104
- uxTaskPriorityGet/36 (uxTaskPriorityGet) @06c382a0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 vPortEnterCritical/100
- eTaskGetState/35 (eTaskGetState) @06c2cb60
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr)
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskGetInfo/72 xTaskAbortDelay/55
- Calls: vPortExitCritical/101 vPortEnterCritical/100
- vTaskDelay/34 (vTaskDelay) @06c2cee0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: xTaskResumeAll/46 prvAddCurrentTaskToDelayedList/94 vTaskSuspendAll/45
- xTaskDelayUntil/33 (xTaskDelayUntil) @06c2ca80
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References: uxSchedulerSuspended/28 (read)xTickCount/18 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: xTaskResumeAll/46 prvAddCurrentTaskToDelayedList/94 vTaskSuspendAll/45
- vTaskDelete/32 (vTaskDelete) @06c2c460
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- 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)
- Referring:
- Availability: available
- Function flags: body
- Called by:
- Calls: vPortExitCritical/101 prvResetNextTaskUnblockTime/77 prvDeleteTCB/76 vListInsertEnd/103 uxListRemove/102 uxListRemove/102 vPortEnterCritical/100
- prvAddNewTaskToReadyList/31 (prvAddNewTaskToReadyList) @06c18ee0
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- 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)uxTaskNumber/24 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskCreate/29
- Calls: vPortExitCritical/101 prvInitialiseTaskLists/70 vPortEnterCritical/100
- prvInitialiseNewTask/30 (prvInitialiseNewTask) @06c18e00
- Type: function definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: xTaskCreate/29
- Calls: pxPortInitialiseStack/99 memset/97 memset/97 vListInitialiseItem/98 vListInitialiseItem/98 memset/97
- xTaskCreate/29 (xTaskCreate) @06c188c0
- Type: function definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References:
- Referring:
- Availability: available
- Function flags: body
- Called by: vTaskStartScheduler/43
- Calls: prvAddNewTaskToReadyList/31 prvInitialiseNewTask/30 vPortFree/96 pvPortMalloc/95 pvPortMalloc/95
- uxSchedulerSuspended/28 (uxSchedulerSuspended) @06c115a0
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskRemoveFromEventList/61 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskGetSchedulerState/79 (read)xTaskCatchUpTicks/54 (read)vTaskDelay/34 (read)vTaskSwitchContext/57 (read)xTaskResumeAll/46 (read)vTaskSuspendAll/45 (read)vTaskSuspend/39 (read)xTaskIncrementTick/56 (read)vTaskDelete/32 (read)xTaskResumeFromISR/42 (read)xTaskDelayUntil/33 (read)vTaskSuspendAll/45 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)vTaskPlaceOnUnorderedEventList/59 (read)
- Availability: available
- Varpool flags: initialized
- uxTopUsedPriority/27 (uxTopUsedPriority) @06c11510
- Type: variable definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References:
- Referring: vTaskStartScheduler/43 (read)
- Availability: available
- Varpool flags: initialized read-only
- xIdleTaskHandle/26 (xIdleTaskHandle) @06c11480
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: vTaskStartScheduler/43 (addr)
- Availability: available
- Varpool flags: initialized
- xNextTaskUnblockTime/25 (xNextTaskUnblockTime) @06c113f0
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (write)vTaskStartScheduler/43 (write)prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (write)
- Availability: available
- Varpool flags: initialized
- uxTaskNumber/24 (uxTaskNumber) @06c11360
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (write)
- Availability: available
- Varpool flags: initialized
- xNumOfOverflows/23 (xNumOfOverflows) @06c11318
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskCheckForTimeOut/65 (read)vTaskInternalSetTimeOutState/64 (read)vTaskSetTimeOutState/63 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)
- Availability: available
- Varpool flags: initialized
- xYieldPending/22 (xYieldPending) @06c112d0
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskAbortDelay/55 (write)xTaskRemoveFromEventList/61 (write)vTaskSwitchContext/57 (write)vTaskMissedYield/66 (write)xTaskIncrementTick/56 (read)vTaskRemoveFromUnorderedEventList/62 (write)xTaskResumeAll/46 (read)xTaskGenericNotifyFromISR/90 (write)xTaskResumeFromISR/42 (write)vTaskSwitchContext/57 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (write)vTaskGenericNotifyGiveFromISR/91 (write)
- Availability: available
- Varpool flags: initialized
- xPendedTicks/21 (xPendedTicks) @06c11240
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskCatchUpTicks/54 (read)xTaskCatchUpTicks/54 (write)
- Availability: available
- Varpool flags: initialized
- xSchedulerRunning/20 (xSchedulerRunning) @06c111b0
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: vTaskDelete/32 (read)vTaskSuspend/39 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (read)vTaskStartScheduler/43 (write)vTaskEndScheduler/44 (write)vTaskSuspend/39 (read)xTaskGetSchedulerState/79 (read)
- Availability: available
- Varpool flags: initialized
- uxTopReadyPriority/19 (uxTopReadyPriority) @06c11120
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (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)
- Availability: available
- Varpool flags: initialized
- xTickCount/18 (xTickCount) @06c110d8
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskGenericNotifyFromISR/90 (read)vTaskInternalSetTimeOutState/64 (read)xTaskGenericNotify/89 (read)prvAddCurrentTaskToDelayedList/94 (read)xTaskIncrementTick/56 (write)xTaskCheckForTimeOut/65 (read)xTaskGetTickCount/47 (read)xTaskGetTickCountFromISR/48 (read)vTaskSetTimeOutState/63 (read)vTaskStartScheduler/43 (write)xTaskIncrementTick/56 (read)xTaskDelayUntil/33 (read)
- Availability: available
- Varpool flags: initialized
- uxCurrentNumberOfTasks/17 (uxCurrentNumberOfTasks) @06c11090
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: uxTaskGetNumberOfTasks/49 (read)prvCheckTasksWaitingTermination/71 (read)uxTaskGetSystemState/53 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)prvCheckTasksWaitingTermination/71 (write)vTaskDelete/32 (write)xTaskResumeAll/46 (read)vTaskSuspend/39 (read)vTaskDelete/32 (read)prvAddNewTaskToReadyList/31 (read)vTaskList/84 (read)vTaskList/84 (read)
- Availability: available
- Varpool flags: initialized
- xSuspendedTaskList/16 (xSuspendedTaskList) @06c0ef78
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskGetHandle/52 (addr)vTaskSuspend/39 (addr)prvTaskIsTaskSuspended/40 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (addr)vTaskSuspend/39 (read)eTaskGetState/35 (addr)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (addr)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (write)
- Availability: available
- Varpool flags:
- uxDeletedTasksWaitingCleanUp/15 (uxDeletedTasksWaitingCleanUp) @06c0eee8
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: prvCheckTasksWaitingTermination/71 (write)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (read)vTaskDelete/32 (write)
- Availability: available
- Varpool flags: initialized
- xTasksWaitingTermination/14 (xTasksWaitingTermination) @06c0ee58
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: prvInitialiseTaskLists/70 (addr)eTaskGetState/35 (addr)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)
- Availability: available
- Varpool flags:
- xPendingReadyList/13 (xPendingReadyList) @06c0edc8
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskResumeAll/46 (read)xTaskGenericNotifyFromISR/90 (write)xTaskGenericNotifyFromISR/90 (read)xTaskRemoveFromEventList/61 (write)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskResumeAll/46 (read)prvTaskIsTaskSuspended/40 (addr)xTaskResumeFromISR/42 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskRemoveFromEventList/61 (read)prvInitialiseTaskLists/70 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write)
- Availability: available
- Varpool flags:
- pxOverflowDelayedTaskList/12 (pxOverflowDelayedTaskList) @06c0ed38
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskGetHandle/52 (read)prvInitialiseTaskLists/70 (write)xTaskIncrementTick/56 (write)uxTaskGetSystemState/53 (read)eTaskGetState/35 (read)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)
- Availability: available
- Varpool flags:
- pxDelayedTaskList/11 (pxDelayedTaskList) @06c0ecf0
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskGetHandle/52 (read)prvResetNextTaskUnblockTime/77 (read)xTaskIncrementTick/56 (read)prvInitialiseTaskLists/70 (write)uxTaskGetSystemState/53 (read)eTaskGetState/35 (read)prvResetNextTaskUnblockTime/77 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)
- Availability: available
- Varpool flags:
- xDelayedTaskList2/10 (xDelayedTaskList2) @06c0eca8
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr)
- Availability: available
- Varpool flags:
- xDelayedTaskList1/9 (xDelayedTaskList1) @06c0ec18
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr)
- Availability: available
- Varpool flags:
- pxReadyTasksLists/8 (pxReadyTasksLists) @06c0eb88
- Type: variable definition analyzed
- Visibility: force_output no_reorder prevailing_def_ironly
- References:
- Referring: xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskPriorityDisinheritAfterTimeout/82 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (addr)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (addr)prvAddNewTaskToReadyList/31 (read)prvIdleTask/69 (read)xTaskIncrementTick/56 (read)xTaskGetHandle/52 (addr)xTaskIncrementTick/56 (addr)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskResumeAll/46 (write)xTaskPriorityInherit/80 (addr)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (addr)vTaskRemoveFromUnorderedEventList/62 (read)prvAddNewTaskToReadyList/31 (write)vTaskResume/41 (read)vTaskResume/41 (write)vTaskResume/41 (read)vTaskResume/41 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (addr)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (addr)prvInitialiseTaskLists/70 (addr)xTaskRemoveFromEventList/61 (write)vTaskPrioritySet/38 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (addr)xTaskResumeAll/46 (read)xTaskAbortDelay/55 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (addr)xTaskAbortDelay/55 (read)uxTaskGetSystemState/53 (addr)xTaskIncrementTick/56 (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)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write)
- Availability: available
- Varpool flags:
- pxCurrentTCB/7 (pxCurrentTCB) @06c0eb40
- Type: variable definition analyzed
- Visibility: force_output externally_visible no_reorder public
- References:
- Referring: prvAddNewTaskToReadyList/31 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)vTaskResume/41 (read)vTaskRemoveFromUnorderedEventList/62 (read)vTaskPrioritySet/38 (read)xTaskCheckForTimeOut/65 (read)prvAddNewTaskToReadyList/31 (read)xTaskGenericNotifyStateClear/92 (read)ulTaskGenericNotifyTake/87 (read)eTaskGetState/35 (read)prvAddNewTaskToReadyList/31 (write)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)uxTaskPriorityGet/36 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)uxTaskGetStackHighWaterMark/75 (read)ulTaskGenericNotifyTake/87 (read)uxTaskPriorityGetFromISR/37 (read)vTaskPrioritySet/38 (read)vTaskSuspend/39 (write)vTaskResume/41 (read)xTaskIncrementTick/56 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)xTaskResumeFromISR/42 (read)ulTaskGenericNotifyValueClear/93 (read)ulTaskGenericNotifyTake/87 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnEventList/58 (read)pcTaskGetName/50 (read)vTaskSwitchContext/57 (write)vTaskPrioritySet/38 (read)xTaskRemoveFromEventList/61 (read)vTaskSuspend/39 (read)xTaskResumeAll/46 (read)xTaskCheckForTimeOut/65 (read)xTaskAbortDelay/55 (read)ulTaskGenericNotifyTake/87 (read)vTaskPrioritySet/38 (read)vTaskDelete/32 (read)xTaskIncrementTick/56 (read)vTaskGetInfo/72 (read)xTaskGetCurrentTaskHandle/78 (read)xTaskPriorityInherit/80 (read)vTaskSuspend/39 (read)vTaskGetInfo/72 (read)xTaskPriorityDisinherit/81 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)vTaskPriorityDisinheritAfterTimeout/82 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)uxTaskResetEventItemValue/85 (read)pvTaskIncrementMutexHeldCount/86 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)
- Availability: available
- Varpool flags: initialized
- prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely)
- {
- struct ListItem_t * const pxIndex;
- const TickType_t xConstTickCount;
- TickType_t xTimeToWake;
- struct TCB_t * pxCurrentTCB.152_1;
- struct TCB_t * pxCurrentTCB.153_2;
- struct ListItem_t * _3;
- long unsigned int _4;
- struct TCB_t * pxCurrentTCB.154_5;
- struct TCB_t * pxCurrentTCB.155_6;
- struct xLIST_ITEM * _7;
- struct TCB_t * pxCurrentTCB.156_8;
- struct xLIST_ITEM * _9;
- struct ListItem_t * _10;
- struct TCB_t * pxCurrentTCB.157_11;
- struct ListItem_t * _12;
- struct TCB_t * pxCurrentTCB.158_13;
- long unsigned int _14;
- long unsigned int _15;
- struct TCB_t * pxCurrentTCB.159_16;
- struct List_t * pxOverflowDelayedTaskList.160_17;
- struct TCB_t * pxCurrentTCB.161_18;
- struct ListItem_t * _19;
- struct List_t * pxDelayedTaskList.162_20;
- struct TCB_t * pxCurrentTCB.163_21;
- struct ListItem_t * _22;
- long unsigned int xNextTaskUnblockTime.164_23;
- <bb 2> :
- xConstTickCount_26 ={v} xTickCount;
- pxCurrentTCB.152_1 ={v} pxCurrentTCB;
- pxCurrentTCB.152_1->ucDelayAborted = 0;
- pxCurrentTCB.153_2 ={v} pxCurrentTCB;
- _3 = &pxCurrentTCB.153_2->xStateListItem;
- _4 = uxListRemove (_3);
- <bb 3> :
- if (xTicksToWait_29(D) == 4294967295)
- goto <bb 4>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 4> :
- if (xCanBlockIndefinitely_30(D) != 0)
- goto <bb 5>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 5> :
- pxIndex_31 = xSuspendedTaskList.pxIndex;
- pxCurrentTCB.154_5 ={v} pxCurrentTCB;
- pxCurrentTCB.154_5->xStateListItem.pxNext = pxIndex_31;
- pxCurrentTCB.155_6 ={v} pxCurrentTCB;
- _7 = pxIndex_31->pxPrevious;
- pxCurrentTCB.155_6->xStateListItem.pxPrevious = _7;
- pxCurrentTCB.156_8 ={v} pxCurrentTCB;
- _9 = pxIndex_31->pxPrevious;
- _10 = &pxCurrentTCB.156_8->xStateListItem;
- _9->pxNext = _10;
- pxCurrentTCB.157_11 ={v} pxCurrentTCB;
- _12 = &pxCurrentTCB.157_11->xStateListItem;
- pxIndex_31->pxPrevious = _12;
- pxCurrentTCB.158_13 ={v} pxCurrentTCB;
- pxCurrentTCB.158_13->xStateListItem.pvContainer = &xSuspendedTaskList;
- _14 ={v} xSuspendedTaskList.uxNumberOfItems;
- _15 = _14 + 1;
- xSuspendedTaskList.uxNumberOfItems ={v} _15;
- goto <bb 10>; [INV]
- <bb 6> :
- xTimeToWake_38 = xConstTickCount_26 + xTicksToWait_29(D);
- pxCurrentTCB.159_16 ={v} pxCurrentTCB;
- pxCurrentTCB.159_16->xStateListItem.xItemValue = xTimeToWake_38;
- if (xTimeToWake_38 < xConstTickCount_26)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- pxOverflowDelayedTaskList.160_17 ={v} pxOverflowDelayedTaskList;
- pxCurrentTCB.161_18 ={v} pxCurrentTCB;
- _19 = &pxCurrentTCB.161_18->xStateListItem;
- vListInsert (pxOverflowDelayedTaskList.160_17, _19);
- goto <bb 10>; [INV]
- <bb 8> :
- pxDelayedTaskList.162_20 ={v} pxDelayedTaskList;
- pxCurrentTCB.163_21 ={v} pxCurrentTCB;
- _22 = &pxCurrentTCB.163_21->xStateListItem;
- vListInsert (pxDelayedTaskList.162_20, _22);
- xNextTaskUnblockTime.164_23 ={v} xNextTaskUnblockTime;
- if (xTimeToWake_38 < xNextTaskUnblockTime.164_23)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- xNextTaskUnblockTime ={v} xTimeToWake_38;
- <bb 10> :
- return;
- }
- ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear)
- {
- uint32_t ulReturn;
- struct TCB_t * pxTCB;
- uint32_t D.8224;
- struct TCB_t * iftmp.151;
- long unsigned int _1;
- long unsigned int _2;
- long unsigned int _3;
- struct TCB_t * iftmp.151_4;
- struct TCB_t * iftmp.151_6;
- struct TCB_t * iftmp.151_8;
- uint32_t _16;
- <bb 2> :
- if (xTask_5(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.151_8 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.151_6 = xTask_5(D);
- <bb 5> :
- # iftmp.151_4 = PHI <iftmp.151_8(3), iftmp.151_6(4)>
- pxTCB_9 = iftmp.151_4;
- vPortEnterCritical ();
- ulReturn_12 ={v} pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)];
- _1 ={v} pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)];
- _2 = ~ulBitsToClear_13(D);
- _3 = _1 & _2;
- pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)] ={v} _3;
- vPortExitCritical ();
- _16 = ulReturn_12;
- <bb 6> :
- <L3>:
- return _16;
- }
- xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear)
- {
- uint32_t ulNewBASEPRI;
- BaseType_t xReturn;
- struct TCB_t * pxTCB;
- BaseType_t D.8218;
- struct TCB_t * iftmp.150;
- unsigned char _1;
- struct TCB_t * iftmp.150_3;
- struct TCB_t * iftmp.150_7;
- struct TCB_t * iftmp.150_9;
- BaseType_t _16;
- <bb 2> :
- if (uxIndexToClear_5(D) != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (xTask_6(D) == 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- iftmp.150_9 ={v} pxCurrentTCB;
- goto <bb 9>; [INV]
- <bb 8> :
- iftmp.150_7 = xTask_6(D);
- <bb 9> :
- # iftmp.150_3 = PHI <iftmp.150_9(7), iftmp.150_7(8)>
- pxTCB_10 = iftmp.150_3;
- vPortEnterCritical ();
- _1 ={v} pxTCB_10->ucNotifyState[uxIndexToClear_5(D)];
- if (_1 == 2)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- pxTCB_10->ucNotifyState[uxIndexToClear_5(D)] ={v} 0;
- xReturn_14 = 1;
- goto <bb 12>; [INV]
- <bb 11> :
- xReturn_12 = 0;
- <bb 12> :
- # xReturn_2 = PHI <xReturn_14(10), xReturn_12(11)>
- vPortExitCritical ();
- _16 = xReturn_2;
- <bb 13> :
- <L9>:
- return _16;
- }
- vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken)
- {
- uint32_t ulNewMaskValue;
- uint32_t ulNewBASEPRI;
- uint32_t D.8368;
- uint32_t ulOriginalBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t D.8367;
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- UBaseType_t uxSavedInterruptStatus;
- uint8_t ucOriginalNotifyState;
- struct TCB_t * pxTCB;
- long unsigned int _1;
- long unsigned int _2;
- struct xLIST * _3;
- long unsigned int uxSchedulerSuspended.147_4;
- struct xLIST_ITEM * _5;
- struct xLIST_ITEM * _6;
- struct xLIST_ITEM * _7;
- struct xLIST_ITEM * _8;
- struct ListItem_t * _9;
- struct ListItem_t * _10;
- struct xLIST_ITEM * _11;
- long unsigned int _12;
- long unsigned int _13;
- long unsigned int _14;
- long unsigned int uxTopReadyPriority.148_15;
- long unsigned int _16;
- long unsigned int _17;
- struct xLIST_ITEM * _18;
- struct xLIST_ITEM * _19;
- struct ListItem_t * _20;
- struct ListItem_t * _21;
- long unsigned int _22;
- struct List_t * _23;
- long unsigned int _24;
- long unsigned int _25;
- long unsigned int _26;
- struct xLIST_ITEM * _27;
- struct xLIST_ITEM * _28;
- struct ListItem_t * _29;
- struct ListItem_t * _30;
- long unsigned int _31;
- long unsigned int _32;
- long unsigned int _33;
- struct TCB_t * pxCurrentTCB.149_34;
- long unsigned int _35;
- long unsigned int _78;
- <bb 2> :
- if (xTaskToNotify_41(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_74 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (uxIndexToNotify_42(D) != 0)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_75 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- vPortValidateInterruptPriority ();
- pxTCB_45 = xTaskToNotify_41(D);
- __asm__ __volatile__(" mrs %0, basepri
- mov %1, %2
- msr basepri, %1
- isb
- dsb
- " : "=r" ulOriginalBASEPRI_76, "=r" ulNewBASEPRI_77 : "i" 16 : "memory");
- _78 = ulOriginalBASEPRI_76;
- <bb 11> :
- <L23>:
- _82 = _78;
- <bb 12> :
- uxSavedInterruptStatus_46 = _82;
- ucOriginalNotifyState_47 ={v} pxTCB_45->ucNotifyState[uxIndexToNotify_42(D)];
- pxTCB_45->ucNotifyState[uxIndexToNotify_42(D)] ={v} 2;
- _1 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_42(D)];
- _2 = _1 + 1;
- pxTCB_45->ulNotifiedValue[uxIndexToNotify_42(D)] ={v} _2;
- if (ucOriginalNotifyState_47 == 1)
- goto <bb 13>; [INV]
- else
- goto <bb 28>; [INV]
- <bb 13> :
- _3 = pxTCB_45->xEventListItem.pvContainer;
- if (_3 != 0B)
- goto <bb 14>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 14> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_79 : "i" 16 : "memory");
- <bb 15> :
- <bb 16> :
- goto <bb 16>; [INV]
- <bb 17> :
- uxSchedulerSuspended.147_4 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.147_4 == 0)
- goto <bb 18>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 18> :
- pxList_57 = pxTCB_45->xStateListItem.pvContainer;
- _5 = pxTCB_45->xStateListItem.pxNext;
- _6 = pxTCB_45->xStateListItem.pxPrevious;
- _5->pxPrevious = _6;
- _7 = pxTCB_45->xStateListItem.pxPrevious;
- _8 = pxTCB_45->xStateListItem.pxNext;
- _7->pxNext = _8;
- _9 = pxList_57->pxIndex;
- _10 = &pxTCB_45->xStateListItem;
- if (_9 == _10)
- goto <bb 19>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 19> :
- _11 = pxTCB_45->xStateListItem.pxPrevious;
- pxList_57->pxIndex = _11;
- <bb 20> :
- pxTCB_45->xStateListItem.pvContainer = 0B;
- _12 ={v} pxList_57->uxNumberOfItems;
- _13 = _12 + 4294967295;
- pxList_57->uxNumberOfItems ={v} _13;
- _14 = pxTCB_45->uxPriority;
- uxTopReadyPriority.148_15 ={v} uxTopReadyPriority;
- if (_14 > uxTopReadyPriority.148_15)
- goto <bb 21>; [INV]
- else
- goto <bb 22>; [INV]
- <bb 21> :
- _16 = pxTCB_45->uxPriority;
- uxTopReadyPriority ={v} _16;
- <bb 22> :
- _17 = pxTCB_45->uxPriority;
- pxIndex_64 = pxReadyTasksLists[_17].pxIndex;
- pxTCB_45->xStateListItem.pxNext = pxIndex_64;
- _18 = pxIndex_64->pxPrevious;
- pxTCB_45->xStateListItem.pxPrevious = _18;
- _19 = pxIndex_64->pxPrevious;
- _20 = &pxTCB_45->xStateListItem;
- _19->pxNext = _20;
- _21 = &pxTCB_45->xStateListItem;
- pxIndex_64->pxPrevious = _21;
- _22 = pxTCB_45->uxPriority;
- _23 = &pxReadyTasksLists[_22];
- pxTCB_45->xStateListItem.pvContainer = _23;
- _24 = pxTCB_45->uxPriority;
- _25 ={v} pxReadyTasksLists[_24].uxNumberOfItems;
- _26 = _25 + 1;
- pxReadyTasksLists[_24].uxNumberOfItems ={v} _26;
- goto <bb 24>; [INV]
- <bb 23> :
- pxIndex_50 = xPendingReadyList.pxIndex;
- pxTCB_45->xEventListItem.pxNext = pxIndex_50;
- _27 = pxIndex_50->pxPrevious;
- pxTCB_45->xEventListItem.pxPrevious = _27;
- _28 = pxIndex_50->pxPrevious;
- _29 = &pxTCB_45->xEventListItem;
- _28->pxNext = _29;
- _30 = &pxTCB_45->xEventListItem;
- pxIndex_50->pxPrevious = _30;
- pxTCB_45->xEventListItem.pvContainer = &xPendingReadyList;
- _31 ={v} xPendingReadyList.uxNumberOfItems;
- _32 = _31 + 1;
- xPendingReadyList.uxNumberOfItems ={v} _32;
- <bb 24> :
- _33 = pxTCB_45->uxPriority;
- pxCurrentTCB.149_34 ={v} pxCurrentTCB;
- _35 = pxCurrentTCB.149_34->uxPriority;
- if (_33 > _35)
- goto <bb 25>; [INV]
- else
- goto <bb 28>; [INV]
- <bb 25> :
- if (pxHigherPriorityTaskWoken_71(D) != 0B)
- goto <bb 26>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 26> :
- *pxHigherPriorityTaskWoken_71(D) = 1;
- <bb 27> :
- xYieldPending ={v} 1;
- <bb 28> :
- ulNewMaskValue_80 = uxSavedInterruptStatus_46;
- __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_80 : "memory");
- <bb 29> :
- return;
- }
- xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken)
- {
- uint32_t ulNewMaskValue;
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t D.8358;
- uint32_t ulOriginalBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t D.8357;
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- UBaseType_t uxSavedInterruptStatus;
- BaseType_t xReturn;
- uint8_t ucOriginalNotifyState;
- struct TCB_t * pxTCB;
- BaseType_t D.8187;
- long unsigned int _1;
- long unsigned int _2;
- long unsigned int _3;
- long unsigned int _4;
- long unsigned int _5;
- long unsigned int xTickCount.143_6;
- struct xLIST * _7;
- long unsigned int uxSchedulerSuspended.144_8;
- struct xLIST_ITEM * _9;
- struct xLIST_ITEM * _10;
- struct xLIST_ITEM * _11;
- struct xLIST_ITEM * _12;
- struct ListItem_t * _13;
- struct ListItem_t * _14;
- struct xLIST_ITEM * _15;
- long unsigned int _16;
- long unsigned int _17;
- long unsigned int _18;
- long unsigned int uxTopReadyPriority.145_19;
- long unsigned int _20;
- long unsigned int _21;
- struct xLIST_ITEM * _22;
- struct xLIST_ITEM * _23;
- struct ListItem_t * _24;
- struct ListItem_t * _25;
- long unsigned int _26;
- struct List_t * _27;
- long unsigned int _28;
- long unsigned int _29;
- long unsigned int _30;
- struct xLIST_ITEM * _31;
- struct xLIST_ITEM * _32;
- struct ListItem_t * _33;
- struct ListItem_t * _34;
- long unsigned int _35;
- long unsigned int _36;
- long unsigned int _37;
- struct TCB_t * pxCurrentTCB.146_38;
- long unsigned int _39;
- BaseType_t _92;
- long unsigned int _97;
- <bb 2> :
- xReturn_50 = 1;
- if (xTaskToNotify_51(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_93 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (uxIndexToNotify_52(D) != 0)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_94 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- vPortValidateInterruptPriority ();
- pxTCB_55 = xTaskToNotify_51(D);
- __asm__ __volatile__(" mrs %0, basepri
- mov %1, %2
- msr basepri, %1
- isb
- dsb
- " : "=r" ulOriginalBASEPRI_95, "=r" ulNewBASEPRI_96 : "i" 16 : "memory");
- _97 = ulOriginalBASEPRI_95;
- <bb 11> :
- <L39>:
- _102 = _97;
- <bb 12> :
- uxSavedInterruptStatus_56 = _102;
- if (pulPreviousNotificationValue_57(D) != 0B)
- goto <bb 13>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 13> :
- _1 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)];
- *pulPreviousNotificationValue_57(D) = _1;
- <bb 14> :
- ucOriginalNotifyState_59 ={v} pxTCB_55->ucNotifyState[uxIndexToNotify_52(D)];
- pxTCB_55->ucNotifyState[uxIndexToNotify_52(D)] ={v} 2;
- switch (eAction_61(D)) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>
- <bb 15> :
- <L8>:
- _2 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)];
- _3 = ulValue_63(D) | _2;
- pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} _3;
- goto <bb 28>; [INV]
- <bb 16> :
- <L9>:
- _4 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)];
- _5 = _4 + 1;
- pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} _5;
- goto <bb 28>; [INV]
- <bb 17> :
- <L10>:
- pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} ulValue_63(D);
- goto <bb 28>; [INV]
- <bb 18> :
- <L11>:
- if (ucOriginalNotifyState_59 != 2)
- goto <bb 19>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 19> :
- pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} ulValue_63(D);
- goto <bb 21>; [INV]
- <bb 20> :
- xReturn_62 = 0;
- <bb 21> :
- # xReturn_40 = PHI <xReturn_50(19), xReturn_62(20)>
- goto <bb 28>; [INV]
- <bb 22> :
- <L15>:
- goto <bb 28>; [INV]
- <bb 23> :
- <L16>:
- xTickCount.143_6 ={v} xTickCount;
- if (xTickCount.143_6 != 0)
- goto <bb 24>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 24> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_98 : "i" 16 : "memory");
- <bb 25> :
- <bb 26> :
- goto <bb 26>; [INV]
- <bb 27> :
- <bb 28> :
- # xReturn_41 = PHI <xReturn_50(15), xReturn_50(16), xReturn_50(17), xReturn_40(21), xReturn_50(22), xReturn_50(27)>
- if (ucOriginalNotifyState_59 == 1)
- goto <bb 29>; [INV]
- else
- goto <bb 44>; [INV]
- <bb 29> :
- _7 = pxTCB_55->xEventListItem.pvContainer;
- if (_7 != 0B)
- goto <bb 30>; [INV]
- else
- goto <bb 33>; [INV]
- <bb 30> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_99 : "i" 16 : "memory");
- <bb 31> :
- <bb 32> :
- goto <bb 32>; [INV]
- <bb 33> :
- uxSchedulerSuspended.144_8 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.144_8 == 0)
- goto <bb 34>; [INV]
- else
- goto <bb 39>; [INV]
- <bb 34> :
- pxList_75 = pxTCB_55->xStateListItem.pvContainer;
- _9 = pxTCB_55->xStateListItem.pxNext;
- _10 = pxTCB_55->xStateListItem.pxPrevious;
- _9->pxPrevious = _10;
- _11 = pxTCB_55->xStateListItem.pxPrevious;
- _12 = pxTCB_55->xStateListItem.pxNext;
- _11->pxNext = _12;
- _13 = pxList_75->pxIndex;
- _14 = &pxTCB_55->xStateListItem;
- if (_13 == _14)
- goto <bb 35>; [INV]
- else
- goto <bb 36>; [INV]
- <bb 35> :
- _15 = pxTCB_55->xStateListItem.pxPrevious;
- pxList_75->pxIndex = _15;
- <bb 36> :
- pxTCB_55->xStateListItem.pvContainer = 0B;
- _16 ={v} pxList_75->uxNumberOfItems;
- _17 = _16 + 4294967295;
- pxList_75->uxNumberOfItems ={v} _17;
- _18 = pxTCB_55->uxPriority;
- uxTopReadyPriority.145_19 ={v} uxTopReadyPriority;
- if (_18 > uxTopReadyPriority.145_19)
- goto <bb 37>; [INV]
- else
- goto <bb 38>; [INV]
- <bb 37> :
- _20 = pxTCB_55->uxPriority;
- uxTopReadyPriority ={v} _20;
- <bb 38> :
- _21 = pxTCB_55->uxPriority;
- pxIndex_82 = pxReadyTasksLists[_21].pxIndex;
- pxTCB_55->xStateListItem.pxNext = pxIndex_82;
- _22 = pxIndex_82->pxPrevious;
- pxTCB_55->xStateListItem.pxPrevious = _22;
- _23 = pxIndex_82->pxPrevious;
- _24 = &pxTCB_55->xStateListItem;
- _23->pxNext = _24;
- _25 = &pxTCB_55->xStateListItem;
- pxIndex_82->pxPrevious = _25;
- _26 = pxTCB_55->uxPriority;
- _27 = &pxReadyTasksLists[_26];
- pxTCB_55->xStateListItem.pvContainer = _27;
- _28 = pxTCB_55->uxPriority;
- _29 ={v} pxReadyTasksLists[_28].uxNumberOfItems;
- _30 = _29 + 1;
- pxReadyTasksLists[_28].uxNumberOfItems ={v} _30;
- goto <bb 40>; [INV]
- <bb 39> :
- pxIndex_68 = xPendingReadyList.pxIndex;
- pxTCB_55->xEventListItem.pxNext = pxIndex_68;
- _31 = pxIndex_68->pxPrevious;
- pxTCB_55->xEventListItem.pxPrevious = _31;
- _32 = pxIndex_68->pxPrevious;
- _33 = &pxTCB_55->xEventListItem;
- _32->pxNext = _33;
- _34 = &pxTCB_55->xEventListItem;
- pxIndex_68->pxPrevious = _34;
- pxTCB_55->xEventListItem.pvContainer = &xPendingReadyList;
- _35 ={v} xPendingReadyList.uxNumberOfItems;
- _36 = _35 + 1;
- xPendingReadyList.uxNumberOfItems ={v} _36;
- <bb 40> :
- _37 = pxTCB_55->uxPriority;
- pxCurrentTCB.146_38 ={v} pxCurrentTCB;
- _39 = pxCurrentTCB.146_38->uxPriority;
- if (_37 > _39)
- goto <bb 41>; [INV]
- else
- goto <bb 44>; [INV]
- <bb 41> :
- if (pxHigherPriorityTaskWoken_89(D) != 0B)
- goto <bb 42>; [INV]
- else
- goto <bb 43>; [INV]
- <bb 42> :
- *pxHigherPriorityTaskWoken_89(D) = 1;
- <bb 43> :
- xYieldPending ={v} 1;
- <bb 44> :
- ulNewMaskValue_100 = uxSavedInterruptStatus_56;
- __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_100 : "memory");
- <bb 45> :
- _92 = xReturn_41;
- <bb 46> :
- <L38>:
- return _92;
- }
- xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- uint8_t ucOriginalNotifyState;
- BaseType_t xReturn;
- struct TCB_t * pxTCB;
- BaseType_t D.8158;
- long unsigned int _1;
- long unsigned int _2;
- long unsigned int _3;
- long unsigned int _4;
- long unsigned int _5;
- long unsigned int xTickCount.140_6;
- struct xLIST_ITEM * _7;
- struct xLIST_ITEM * _8;
- struct xLIST_ITEM * _9;
- struct xLIST_ITEM * _10;
- struct ListItem_t * _11;
- struct ListItem_t * _12;
- struct xLIST_ITEM * _13;
- long unsigned int _14;
- long unsigned int _15;
- long unsigned int _16;
- long unsigned int uxTopReadyPriority.141_17;
- long unsigned int _18;
- long unsigned int _19;
- struct xLIST_ITEM * _20;
- struct xLIST_ITEM * _21;
- struct ListItem_t * _22;
- struct ListItem_t * _23;
- long unsigned int _24;
- struct List_t * _25;
- long unsigned int _26;
- long unsigned int _27;
- long unsigned int _28;
- struct xLIST * _29;
- long unsigned int _30;
- struct TCB_t * pxCurrentTCB.142_31;
- long unsigned int _32;
- volatile uint32_t * _33;
- BaseType_t _77;
- <bb 2> :
- xReturn_42 = 1;
- if (uxIndexToNotify_43(D) != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_78 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (xTaskToNotify_44(D) == 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_79 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- pxTCB_45 = xTaskToNotify_44(D);
- vPortEnterCritical ();
- if (pulPreviousNotificationValue_48(D) != 0B)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- _1 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)];
- *pulPreviousNotificationValue_48(D) = _1;
- <bb 12> :
- ucOriginalNotifyState_50 ={v} pxTCB_45->ucNotifyState[uxIndexToNotify_43(D)];
- pxTCB_45->ucNotifyState[uxIndexToNotify_43(D)] ={v} 2;
- switch (eAction_52(D)) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>
- <bb 13> :
- <L8>:
- _2 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)];
- _3 = ulValue_54(D) | _2;
- pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} _3;
- goto <bb 26>; [INV]
- <bb 14> :
- <L9>:
- _4 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)];
- _5 = _4 + 1;
- pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} _5;
- goto <bb 26>; [INV]
- <bb 15> :
- <L10>:
- pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} ulValue_54(D);
- goto <bb 26>; [INV]
- <bb 16> :
- <L11>:
- if (ucOriginalNotifyState_50 != 2)
- goto <bb 17>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 17> :
- pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} ulValue_54(D);
- goto <bb 19>; [INV]
- <bb 18> :
- xReturn_53 = 0;
- <bb 19> :
- # xReturn_34 = PHI <xReturn_42(17), xReturn_53(18)>
- goto <bb 26>; [INV]
- <bb 20> :
- <L15>:
- goto <bb 26>; [INV]
- <bb 21> :
- <L16>:
- xTickCount.140_6 ={v} xTickCount;
- if (xTickCount.140_6 != 0)
- goto <bb 22>; [INV]
- else
- goto <bb 25>; [INV]
- <bb 22> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_80 : "i" 16 : "memory");
- <bb 23> :
- <bb 24> :
- goto <bb 24>; [INV]
- <bb 25> :
- <bb 26> :
- # xReturn_35 = PHI <xReturn_42(13), xReturn_42(14), xReturn_42(15), xReturn_34(19), xReturn_42(20), xReturn_42(25)>
- if (ucOriginalNotifyState_50 == 1)
- goto <bb 27>; [INV]
- else
- goto <bb 37>; [INV]
- <bb 27> :
- pxList_59 = pxTCB_45->xStateListItem.pvContainer;
- _7 = pxTCB_45->xStateListItem.pxNext;
- _8 = pxTCB_45->xStateListItem.pxPrevious;
- _7->pxPrevious = _8;
- _9 = pxTCB_45->xStateListItem.pxPrevious;
- _10 = pxTCB_45->xStateListItem.pxNext;
- _9->pxNext = _10;
- _11 = pxList_59->pxIndex;
- _12 = &pxTCB_45->xStateListItem;
- if (_11 == _12)
- goto <bb 28>; [INV]
- else
- goto <bb 29>; [INV]
- <bb 28> :
- _13 = pxTCB_45->xStateListItem.pxPrevious;
- pxList_59->pxIndex = _13;
- <bb 29> :
- pxTCB_45->xStateListItem.pvContainer = 0B;
- _14 ={v} pxList_59->uxNumberOfItems;
- _15 = _14 + 4294967295;
- pxList_59->uxNumberOfItems ={v} _15;
- _16 = pxTCB_45->uxPriority;
- uxTopReadyPriority.141_17 ={v} uxTopReadyPriority;
- if (_16 > uxTopReadyPriority.141_17)
- goto <bb 30>; [INV]
- else
- goto <bb 31>; [INV]
- <bb 30> :
- _18 = pxTCB_45->uxPriority;
- uxTopReadyPriority ={v} _18;
- <bb 31> :
- _19 = pxTCB_45->uxPriority;
- pxIndex_66 = pxReadyTasksLists[_19].pxIndex;
- pxTCB_45->xStateListItem.pxNext = pxIndex_66;
- _20 = pxIndex_66->pxPrevious;
- pxTCB_45->xStateListItem.pxPrevious = _20;
- _21 = pxIndex_66->pxPrevious;
- _22 = &pxTCB_45->xStateListItem;
- _21->pxNext = _22;
- _23 = &pxTCB_45->xStateListItem;
- pxIndex_66->pxPrevious = _23;
- _24 = pxTCB_45->uxPriority;
- _25 = &pxReadyTasksLists[_24];
- pxTCB_45->xStateListItem.pvContainer = _25;
- _26 = pxTCB_45->uxPriority;
- _27 ={v} pxReadyTasksLists[_26].uxNumberOfItems;
- _28 = _27 + 1;
- pxReadyTasksLists[_26].uxNumberOfItems ={v} _28;
- _29 = pxTCB_45->xEventListItem.pvContainer;
- if (_29 != 0B)
- goto <bb 32>; [INV]
- else
- goto <bb 35>; [INV]
- <bb 32> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_81 : "i" 16 : "memory");
- <bb 33> :
- <bb 34> :
- goto <bb 34>; [INV]
- <bb 35> :
- _30 = pxTCB_45->uxPriority;
- pxCurrentTCB.142_31 ={v} pxCurrentTCB;
- _32 = pxCurrentTCB.142_31->uxPriority;
- if (_30 > _32)
- goto <bb 36>; [INV]
- else
- goto <bb 37>; [INV]
- <bb 36> :
- _33 = 3758157060B;
- *_33 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 37> :
- vPortExitCritical ();
- _77 = xReturn_35;
- <bb 38> :
- <L34>:
- return _77;
- }
- xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait)
- {
- uint32_t ulNewBASEPRI;
- BaseType_t xReturn;
- BaseType_t D.8133;
- struct TCB_t * pxCurrentTCB.138;
- struct TCB_t * pxCurrentTCB.134;
- struct TCB_t * pxCurrentTCB.133_1;
- unsigned char _2;
- long unsigned int _3;
- long unsigned int _4;
- long unsigned int _5;
- struct TCB_t * pxCurrentTCB.135_6;
- volatile uint32_t * _7;
- struct TCB_t * pxCurrentTCB.136_8;
- long unsigned int _9;
- struct TCB_t * pxCurrentTCB.137_10;
- unsigned char _11;
- long unsigned int _12;
- long unsigned int _13;
- long unsigned int _14;
- struct TCB_t * pxCurrentTCB.139_15;
- struct TCB_t * pxCurrentTCB.134_23;
- struct TCB_t * pxCurrentTCB.138_36;
- BaseType_t _43;
- <bb 2> :
- if (uxIndexToWait_20(D) != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_44 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vPortEnterCritical ();
- pxCurrentTCB.133_1 ={v} pxCurrentTCB;
- _2 ={v} pxCurrentTCB.133_1->ucNotifyState[uxIndexToWait_20(D)];
- if (_2 != 2)
- goto <bb 7>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 7> :
- pxCurrentTCB.134_23 ={v} pxCurrentTCB;
- _3 ={v} pxCurrentTCB.134_23->ulNotifiedValue[uxIndexToWait_20(D)];
- _4 = ~ulBitsToClearOnEntry_24(D);
- _5 = _3 & _4;
- pxCurrentTCB.134_23->ulNotifiedValue[uxIndexToWait_20(D)] ={v} _5;
- pxCurrentTCB.135_6 ={v} pxCurrentTCB;
- pxCurrentTCB.135_6->ucNotifyState[uxIndexToWait_20(D)] ={v} 1;
- if (xTicksToWait_27(D) != 0)
- goto <bb 8>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 8> :
- prvAddCurrentTaskToDelayedList (xTicksToWait_27(D), 1);
- _7 = 3758157060B;
- *_7 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 9> :
- vPortExitCritical ();
- vPortEnterCritical ();
- if (pulNotificationValue_34(D) != 0B)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- pxCurrentTCB.136_8 ={v} pxCurrentTCB;
- _9 ={v} pxCurrentTCB.136_8->ulNotifiedValue[uxIndexToWait_20(D)];
- *pulNotificationValue_34(D) = _9;
- <bb 11> :
- pxCurrentTCB.137_10 ={v} pxCurrentTCB;
- _11 ={v} pxCurrentTCB.137_10->ucNotifyState[uxIndexToWait_20(D)];
- if (_11 != 2)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- xReturn_40 = 0;
- goto <bb 14>; [INV]
- <bb 13> :
- pxCurrentTCB.138_36 ={v} pxCurrentTCB;
- _12 ={v} pxCurrentTCB.138_36->ulNotifiedValue[uxIndexToWait_20(D)];
- _13 = ~ulBitsToClearOnExit_37(D);
- _14 = _12 & _13;
- pxCurrentTCB.138_36->ulNotifiedValue[uxIndexToWait_20(D)] ={v} _14;
- xReturn_39 = 1;
- <bb 14> :
- # xReturn_16 = PHI <xReturn_40(12), xReturn_39(13)>
- pxCurrentTCB.139_15 ={v} pxCurrentTCB;
- pxCurrentTCB.139_15->ucNotifyState[uxIndexToWait_20(D)] ={v} 0;
- vPortExitCritical ();
- _43 = xReturn_16;
- <bb 15> :
- <L14>:
- return _43;
- }
- ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulReturn;
- uint32_t D.8116;
- struct TCB_t * pxCurrentTCB.127_1;
- long unsigned int _2;
- struct TCB_t * pxCurrentTCB.128_3;
- volatile uint32_t * _4;
- struct TCB_t * pxCurrentTCB.129_5;
- struct TCB_t * pxCurrentTCB.130_6;
- struct TCB_t * pxCurrentTCB.131_7;
- long unsigned int _8;
- struct TCB_t * pxCurrentTCB.132_9;
- uint32_t _29;
- <bb 2> :
- if (uxIndexToWait_12(D) != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vPortEnterCritical ();
- pxCurrentTCB.127_1 ={v} pxCurrentTCB;
- _2 ={v} pxCurrentTCB.127_1->ulNotifiedValue[uxIndexToWait_12(D)];
- if (_2 == 0)
- goto <bb 7>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 7> :
- pxCurrentTCB.128_3 ={v} pxCurrentTCB;
- pxCurrentTCB.128_3->ucNotifyState[uxIndexToWait_12(D)] ={v} 1;
- if (xTicksToWait_16(D) != 0)
- goto <bb 8>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 8> :
- prvAddCurrentTaskToDelayedList (xTicksToWait_16(D), 1);
- _4 = 3758157060B;
- *_4 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 9> :
- vPortExitCritical ();
- vPortEnterCritical ();
- pxCurrentTCB.129_5 ={v} pxCurrentTCB;
- ulReturn_23 ={v} pxCurrentTCB.129_5->ulNotifiedValue[uxIndexToWait_12(D)];
- if (ulReturn_23 != 0)
- goto <bb 10>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 10> :
- if (xClearCountOnExit_24(D) != 0)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- pxCurrentTCB.130_6 ={v} pxCurrentTCB;
- pxCurrentTCB.130_6->ulNotifiedValue[uxIndexToWait_12(D)] ={v} 0;
- goto <bb 13>; [INV]
- <bb 12> :
- pxCurrentTCB.131_7 ={v} pxCurrentTCB;
- _8 = ulReturn_23 + 4294967295;
- pxCurrentTCB.131_7->ulNotifiedValue[uxIndexToWait_12(D)] ={v} _8;
- <bb 13> :
- pxCurrentTCB.132_9 ={v} pxCurrentTCB;
- pxCurrentTCB.132_9->ucNotifyState[uxIndexToWait_12(D)] ={v} 0;
- vPortExitCritical ();
- _29 = ulReturn_23;
- <bb 14> :
- <L15>:
- return _29;
- }
- pvTaskIncrementMutexHeldCount ()
- {
- struct tskTaskControlBlock * D.8100;
- struct TCB_t * pxCurrentTCB.125_1;
- struct TCB_t * pxCurrentTCB.126_2;
- long unsigned int _3;
- long unsigned int _4;
- struct tskTaskControlBlock * _8;
- <bb 2> :
- pxCurrentTCB.125_1 ={v} pxCurrentTCB;
- if (pxCurrentTCB.125_1 != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- pxCurrentTCB.126_2 ={v} pxCurrentTCB;
- _3 = pxCurrentTCB.126_2->uxMutexesHeld;
- _4 = _3 + 1;
- pxCurrentTCB.126_2->uxMutexesHeld = _4;
- <bb 4> :
- _8 ={v} pxCurrentTCB;
- <bb 5> :
- <L2>:
- return _8;
- }
- uxTaskResetEventItemValue ()
- {
- TickType_t uxReturn;
- TickType_t D.8096;
- struct TCB_t * pxCurrentTCB.122_1;
- struct TCB_t * pxCurrentTCB.123_2;
- long unsigned int _3;
- struct TCB_t * pxCurrentTCB.124_4;
- long unsigned int _5;
- TickType_t _9;
- <bb 2> :
- pxCurrentTCB.122_1 ={v} pxCurrentTCB;
- uxReturn_7 = pxCurrentTCB.122_1->xEventListItem.xItemValue;
- pxCurrentTCB.123_2 ={v} pxCurrentTCB;
- _3 = pxCurrentTCB.123_2->uxPriority;
- pxCurrentTCB.124_4 ={v} pxCurrentTCB;
- _5 = 5 - _3;
- pxCurrentTCB.124_4->xEventListItem.xItemValue = _5;
- _9 = uxReturn_7;
- <bb 3> :
- <L0>:
- return _9;
- }
- vTaskList (char * pcWriteBuffer)
- {
- char cStatus;
- UBaseType_t x;
- UBaseType_t uxArraySize;
- struct TaskStatus_t * pxTaskStatusArray;
- long unsigned int uxCurrentNumberOfTasks.121_1;
- long unsigned int _2;
- long unsigned int _3;
- struct TaskStatus_t * _4;
- <unnamed type> _5;
- long unsigned int _6;
- struct TaskStatus_t * _7;
- const char * _8;
- int _9;
- long unsigned int _10;
- struct TaskStatus_t * _11;
- long unsigned int _12;
- long unsigned int _13;
- struct TaskStatus_t * _14;
- short unsigned int _15;
- unsigned int _16;
- long unsigned int _17;
- struct TaskStatus_t * _18;
- long unsigned int _19;
- unsigned int _20;
- <bb 2> :
- *pcWriteBuffer_27(D) = 0;
- uxArraySize_29 ={v} uxCurrentNumberOfTasks;
- uxCurrentNumberOfTasks.121_1 ={v} uxCurrentNumberOfTasks;
- _2 = uxCurrentNumberOfTasks.121_1 * 36;
- pxTaskStatusArray_31 = pvPortMalloc (_2);
- if (pxTaskStatusArray_31 != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 3> :
- uxArraySize_33 = uxTaskGetSystemState (pxTaskStatusArray_31, uxArraySize_29, 0B);
- x_34 = 0;
- goto <bb 12>; [INV]
- <bb 4> :
- _3 = x_22 * 36;
- _4 = pxTaskStatusArray_31 + _3;
- _5 = _4->eCurrentState;
- switch (_5) <default: <L7> [INV], case 0: <L2> [INV], case 1: <L3> [INV], case 2: <L4> [INV], case 3: <L5> [INV], case 4: <L6> [INV]>
- <bb 5> :
- <L2>:
- cStatus_40 = 88;
- goto <bb 11>; [INV]
- <bb 6> :
- <L3>:
- cStatus_39 = 82;
- goto <bb 11>; [INV]
- <bb 7> :
- <L4>:
- cStatus_38 = 66;
- goto <bb 11>; [INV]
- <bb 8> :
- <L5>:
- cStatus_37 = 83;
- goto <bb 11>; [INV]
- <bb 9> :
- <L6>:
- cStatus_36 = 68;
- goto <bb 11>; [INV]
- <bb 10> :
- <L7>:
- cStatus_41 = 0;
- <bb 11> :
- # cStatus_23 = PHI <cStatus_40(5), cStatus_39(6), cStatus_38(7), cStatus_37(8), cStatus_36(9), cStatus_41(10)>
- _6 = x_22 * 36;
- _7 = pxTaskStatusArray_31 + _6;
- _8 = _7->pcTaskName;
- pcWriteBuffer_43 = prvWriteNameToBuffer (pcWriteBuffer_21, _8);
- _9 = (int) cStatus_23;
- _10 = x_22 * 36;
- _11 = pxTaskStatusArray_31 + _10;
- _12 = _11->uxCurrentPriority;
- _13 = x_22 * 36;
- _14 = pxTaskStatusArray_31 + _13;
- _15 = _14->usStackHighWaterMark;
- _16 = (unsigned int) _15;
- _17 = x_22 * 36;
- _18 = pxTaskStatusArray_31 + _17;
- _19 = _18->xTaskNumber;
- sprintf (pcWriteBuffer_43, "\t%c\t%u\t%u\t%u\r\n", _9, _12, _16, _19);
- _20 = strlen (pcWriteBuffer_43);
- pcWriteBuffer_45 = pcWriteBuffer_43 + _20;
- x_46 = x_22 + 1;
- <bb 12> :
- # pcWriteBuffer_21 = PHI <pcWriteBuffer_27(D)(3), pcWriteBuffer_45(11)>
- # x_22 = PHI <x_34(3), x_46(11)>
- if (x_22 < uxArraySize_33)
- goto <bb 4>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 13> :
- vPortFree (pxTaskStatusArray_31);
- <bb 14> :
- return;
- }
- prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName)
- {
- size_t x;
- char * D.8091;
- char * _1;
- char * _2;
- char * _11;
- <bb 2> :
- strcpy (pcBuffer_6(D), pcTaskName_7(D));
- x_9 = strlen (pcBuffer_6(D));
- goto <bb 4>; [INV]
- <bb 3> :
- _1 = pcBuffer_6(D) + x_3;
- *_1 = 32;
- x_13 = x_3 + 1;
- <bb 4> :
- # x_3 = PHI <x_9(2), x_13(3)>
- if (x_3 <= 8)
- goto <bb 3>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 5> :
- _2 = pcBuffer_6(D) + x_3;
- *_2 = 0;
- _11 = pcBuffer_6(D) + x_3;
- <bb 6> :
- <L3>:
- return _11;
- }
- vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- const UBaseType_t uxOnlyOneMutexHeld;
- UBaseType_t uxPriorityToUse;
- UBaseType_t uxPriorityUsedOnEntry;
- struct TCB_t * const pxTCB;
- long unsigned int _1;
- long unsigned int _2;
- long unsigned int _3;
- long unsigned int _4;
- struct TCB_t * pxCurrentTCB.119_5;
- long unsigned int _6;
- signed int _7;
- long unsigned int _8;
- struct xLIST * _9;
- struct List_t * _10;
- struct ListItem_t * _11;
- long unsigned int _12;
- long unsigned int _13;
- long unsigned int uxTopReadyPriority.120_14;
- long unsigned int _15;
- long unsigned int _16;
- struct xLIST_ITEM * _17;
- struct xLIST_ITEM * _18;
- struct ListItem_t * _19;
- struct ListItem_t * _20;
- long unsigned int _21;
- struct List_t * _22;
- long unsigned int _23;
- long unsigned int _24;
- long unsigned int _25;
- <bb 2> :
- pxTCB_31 = pxMutexHolder_30(D);
- uxOnlyOneMutexHeld_32 = 1;
- if (pxMutexHolder_30(D) != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 3> :
- _1 = pxTCB_31->uxMutexesHeld;
- if (_1 == 0)
- goto <bb 4>; [INV]
- else
- goto <bb 7>; [INV]
- <bb 4> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
- <bb 5> :
- <bb 6> :
- goto <bb 6>; [INV]
- <bb 7> :
- _2 = pxTCB_31->uxBasePriority;
- if (uxHighestPriorityWaitingTask_34(D) > _2)
- goto <bb 8>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 8> :
- uxPriorityToUse_36 = uxHighestPriorityWaitingTask_34(D);
- goto <bb 10>; [INV]
- <bb 9> :
- uxPriorityToUse_35 = pxTCB_31->uxBasePriority;
- <bb 10> :
- # uxPriorityToUse_26 = PHI <uxPriorityToUse_36(8), uxPriorityToUse_35(9)>
- _3 = pxTCB_31->uxPriority;
- if (uxPriorityToUse_26 != _3)
- goto <bb 11>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 11> :
- _4 = pxTCB_31->uxMutexesHeld;
- if (uxOnlyOneMutexHeld_32 == _4)
- goto <bb 12>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 12> :
- pxCurrentTCB.119_5 ={v} pxCurrentTCB;
- if (pxTCB_31 == pxCurrentTCB.119_5)
- goto <bb 13>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 13> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory");
- <bb 14> :
- <bb 15> :
- goto <bb 15>; [INV]
- <bb 16> :
- uxPriorityUsedOnEntry_37 = pxTCB_31->uxPriority;
- pxTCB_31->uxPriority = uxPriorityToUse_26;
- _6 = pxTCB_31->xEventListItem.xItemValue;
- _7 = (signed int) _6;
- if (_7 >= 0)
- goto <bb 17>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 17> :
- _8 = 5 - uxPriorityToUse_26;
- pxTCB_31->xEventListItem.xItemValue = _8;
- <bb 18> :
- _9 = pxTCB_31->xStateListItem.pvContainer;
- _10 = &pxReadyTasksLists[uxPriorityUsedOnEntry_37];
- if (_9 == _10)
- goto <bb 19>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 19> :
- _11 = &pxTCB_31->xStateListItem;
- _12 = uxListRemove (_11);
- <bb 20> :
- _13 = pxTCB_31->uxPriority;
- uxTopReadyPriority.120_14 ={v} uxTopReadyPriority;
- if (_13 > uxTopReadyPriority.120_14)
- goto <bb 21>; [INV]
- else
- goto <bb 22>; [INV]
- <bb 21> :
- _15 = pxTCB_31->uxPriority;
- uxTopReadyPriority ={v} _15;
- <bb 22> :
- _16 = pxTCB_31->uxPriority;
- pxIndex_42 = pxReadyTasksLists[_16].pxIndex;
- pxTCB_31->xStateListItem.pxNext = pxIndex_42;
- _17 = pxIndex_42->pxPrevious;
- pxTCB_31->xStateListItem.pxPrevious = _17;
- _18 = pxIndex_42->pxPrevious;
- _19 = &pxTCB_31->xStateListItem;
- _18->pxNext = _19;
- _20 = &pxTCB_31->xStateListItem;
- pxIndex_42->pxPrevious = _20;
- _21 = pxTCB_31->uxPriority;
- _22 = &pxReadyTasksLists[_21];
- pxTCB_31->xStateListItem.pvContainer = _22;
- _23 = pxTCB_31->uxPriority;
- _24 ={v} pxReadyTasksLists[_23].uxNumberOfItems;
- _25 = _24 + 1;
- pxReadyTasksLists[_23].uxNumberOfItems ={v} _25;
- <bb 23> :
- return;
- }
- xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- BaseType_t xReturn;
- struct TCB_t * const pxTCB;
- BaseType_t D.8062;
- struct TCB_t * pxCurrentTCB.117_1;
- long unsigned int _2;
- long unsigned int _3;
- long unsigned int _4;
- long unsigned int _5;
- long unsigned int _6;
- long unsigned int _7;
- struct ListItem_t * _8;
- long unsigned int _9;
- long unsigned int _10;
- long unsigned int _11;
- long unsigned int _12;
- long unsigned int _13;
- long unsigned int uxTopReadyPriority.118_14;
- long unsigned int _15;
- long unsigned int _16;
- struct xLIST_ITEM * _17;
- struct xLIST_ITEM * _18;
- struct ListItem_t * _19;
- struct ListItem_t * _20;
- long unsigned int _21;
- struct List_t * _22;
- long unsigned int _23;
- long unsigned int _24;
- long unsigned int _25;
- BaseType_t _46;
- <bb 2> :
- pxTCB_30 = pxMutexHolder_29(D);
- xReturn_31 = 0;
- if (pxMutexHolder_29(D) != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 3> :
- pxCurrentTCB.117_1 ={v} pxCurrentTCB;
- if (pxTCB_30 != pxCurrentTCB.117_1)
- goto <bb 4>; [INV]
- else
- goto <bb 7>; [INV]
- <bb 4> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory");
- <bb 5> :
- <bb 6> :
- goto <bb 6>; [INV]
- <bb 7> :
- _2 = pxTCB_30->uxMutexesHeld;
- if (_2 == 0)
- goto <bb 8>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 8> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
- <bb 9> :
- <bb 10> :
- goto <bb 10>; [INV]
- <bb 11> :
- _3 = pxTCB_30->uxMutexesHeld;
- _4 = _3 + 4294967295;
- pxTCB_30->uxMutexesHeld = _4;
- _5 = pxTCB_30->uxPriority;
- _6 = pxTCB_30->uxBasePriority;
- if (_5 != _6)
- goto <bb 12>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 12> :
- _7 = pxTCB_30->uxMutexesHeld;
- if (_7 == 0)
- goto <bb 13>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 13> :
- _8 = &pxTCB_30->xStateListItem;
- _9 = uxListRemove (_8);
- <bb 14> :
- _10 = pxTCB_30->uxBasePriority;
- pxTCB_30->uxPriority = _10;
- _11 = pxTCB_30->uxPriority;
- _12 = 5 - _11;
- pxTCB_30->xEventListItem.xItemValue = _12;
- _13 = pxTCB_30->uxPriority;
- uxTopReadyPriority.118_14 ={v} uxTopReadyPriority;
- if (_13 > uxTopReadyPriority.118_14)
- goto <bb 15>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 15> :
- _15 = pxTCB_30->uxPriority;
- uxTopReadyPriority ={v} _15;
- <bb 16> :
- _16 = pxTCB_30->uxPriority;
- pxIndex_38 = pxReadyTasksLists[_16].pxIndex;
- pxTCB_30->xStateListItem.pxNext = pxIndex_38;
- _17 = pxIndex_38->pxPrevious;
- pxTCB_30->xStateListItem.pxPrevious = _17;
- _18 = pxIndex_38->pxPrevious;
- _19 = &pxTCB_30->xStateListItem;
- _18->pxNext = _19;
- _20 = &pxTCB_30->xStateListItem;
- pxIndex_38->pxPrevious = _20;
- _21 = pxTCB_30->uxPriority;
- _22 = &pxReadyTasksLists[_21];
- pxTCB_30->xStateListItem.pvContainer = _22;
- _23 = pxTCB_30->uxPriority;
- _24 ={v} pxReadyTasksLists[_23].uxNumberOfItems;
- _25 = _24 + 1;
- pxReadyTasksLists[_23].uxNumberOfItems ={v} _25;
- xReturn_45 = 1;
- <bb 17> :
- # xReturn_26 = PHI <xReturn_31(2), xReturn_45(16), xReturn_31(11), xReturn_31(12)>
- _46 = xReturn_26;
- <bb 18> :
- <L20>:
- return _46;
- }
- xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder)
- {
- struct ListItem_t * const pxIndex;
- BaseType_t xReturn;
- struct TCB_t * const pxMutexHolderTCB;
- BaseType_t D.8042;
- long unsigned int _1;
- struct TCB_t * pxCurrentTCB.111_2;
- long unsigned int _3;
- long unsigned int _4;
- signed int _5;
- struct TCB_t * pxCurrentTCB.112_6;
- long unsigned int _7;
- long unsigned int _8;
- struct xLIST * _9;
- long unsigned int _10;
- struct List_t * _11;
- struct ListItem_t * _12;
- long unsigned int _13;
- struct TCB_t * pxCurrentTCB.113_14;
- long unsigned int _15;
- long unsigned int _16;
- long unsigned int uxTopReadyPriority.114_17;
- long unsigned int _18;
- long unsigned int _19;
- struct xLIST_ITEM * _20;
- struct xLIST_ITEM * _21;
- struct ListItem_t * _22;
- struct ListItem_t * _23;
- long unsigned int _24;
- struct List_t * _25;
- long unsigned int _26;
- long unsigned int _27;
- long unsigned int _28;
- struct TCB_t * pxCurrentTCB.115_29;
- long unsigned int _30;
- long unsigned int _31;
- struct TCB_t * pxCurrentTCB.116_32;
- long unsigned int _33;
- BaseType_t _57;
- <bb 2> :
- pxMutexHolderTCB_40 = pxMutexHolder_39(D);
- xReturn_41 = 0;
- if (pxMutexHolder_39(D) != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 3> :
- _1 = pxMutexHolderTCB_40->uxPriority;
- pxCurrentTCB.111_2 ={v} pxCurrentTCB;
- _3 = pxCurrentTCB.111_2->uxPriority;
- if (_1 < _3)
- goto <bb 4>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 4> :
- _4 = pxMutexHolderTCB_40->xEventListItem.xItemValue;
- _5 = (signed int) _4;
- if (_5 >= 0)
- goto <bb 5>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 5> :
- pxCurrentTCB.112_6 ={v} pxCurrentTCB;
- _7 = pxCurrentTCB.112_6->uxPriority;
- _8 = 5 - _7;
- pxMutexHolderTCB_40->xEventListItem.xItemValue = _8;
- <bb 6> :
- _9 = pxMutexHolderTCB_40->xStateListItem.pvContainer;
- _10 = pxMutexHolderTCB_40->uxPriority;
- _11 = &pxReadyTasksLists[_10];
- if (_9 == _11)
- goto <bb 7>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 7> :
- _12 = &pxMutexHolderTCB_40->xStateListItem;
- _13 = uxListRemove (_12);
- <bb 8> :
- pxCurrentTCB.113_14 ={v} pxCurrentTCB;
- _15 = pxCurrentTCB.113_14->uxPriority;
- pxMutexHolderTCB_40->uxPriority = _15;
- _16 = pxMutexHolderTCB_40->uxPriority;
- uxTopReadyPriority.114_17 ={v} uxTopReadyPriority;
- if (_16 > uxTopReadyPriority.114_17)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- _18 = pxMutexHolderTCB_40->uxPriority;
- uxTopReadyPriority ={v} _18;
- <bb 10> :
- _19 = pxMutexHolderTCB_40->uxPriority;
- pxIndex_49 = pxReadyTasksLists[_19].pxIndex;
- pxMutexHolderTCB_40->xStateListItem.pxNext = pxIndex_49;
- _20 = pxIndex_49->pxPrevious;
- pxMutexHolderTCB_40->xStateListItem.pxPrevious = _20;
- _21 = pxIndex_49->pxPrevious;
- _22 = &pxMutexHolderTCB_40->xStateListItem;
- _21->pxNext = _22;
- _23 = &pxMutexHolderTCB_40->xStateListItem;
- pxIndex_49->pxPrevious = _23;
- _24 = pxMutexHolderTCB_40->uxPriority;
- _25 = &pxReadyTasksLists[_24];
- pxMutexHolderTCB_40->xStateListItem.pvContainer = _25;
- _26 = pxMutexHolderTCB_40->uxPriority;
- _27 ={v} pxReadyTasksLists[_26].uxNumberOfItems;
- _28 = _27 + 1;
- pxReadyTasksLists[_26].uxNumberOfItems ={v} _28;
- goto <bb 12>; [INV]
- <bb 11> :
- pxCurrentTCB.115_29 ={v} pxCurrentTCB;
- _30 = pxCurrentTCB.115_29->uxPriority;
- pxMutexHolderTCB_40->uxPriority = _30;
- <bb 12> :
- xReturn_56 = 1;
- goto <bb 15>; [INV]
- <bb 13> :
- _31 = pxMutexHolderTCB_40->uxBasePriority;
- pxCurrentTCB.116_32 ={v} pxCurrentTCB;
- _33 = pxCurrentTCB.116_32->uxPriority;
- if (_31 < _33)
- goto <bb 14>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 14> :
- xReturn_43 = 1;
- <bb 15> :
- # xReturn_34 = PHI <xReturn_41(2), xReturn_41(13), xReturn_56(12), xReturn_43(14)>
- _57 = xReturn_34;
- <bb 16> :
- <L20>:
- return _57;
- }
- xTaskGetSchedulerState ()
- {
- BaseType_t xReturn;
- BaseType_t D.8020;
- long int xSchedulerRunning.109_1;
- long unsigned int uxSchedulerSuspended.110_2;
- BaseType_t _8;
- <bb 2> :
- xSchedulerRunning.109_1 ={v} xSchedulerRunning;
- if (xSchedulerRunning.109_1 == 0)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- xReturn_7 = 1;
- goto <bb 7>; [INV]
- <bb 4> :
- uxSchedulerSuspended.110_2 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.110_2 == 0)
- goto <bb 5>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 5> :
- xReturn_6 = 2;
- goto <bb 7>; [INV]
- <bb 6> :
- xReturn_5 = 0;
- <bb 7> :
- # xReturn_3 = PHI <xReturn_7(3), xReturn_6(5), xReturn_5(6)>
- _8 = xReturn_3;
- <bb 8> :
- <L6>:
- return _8;
- }
- xTaskGetCurrentTaskHandle ()
- {
- struct tskTaskControlBlock * xReturn;
- struct tskTaskControlBlock * D.8012;
- struct tskTaskControlBlock * _3;
- <bb 2> :
- xReturn_2 ={v} pxCurrentTCB;
- _3 = xReturn_2;
- <bb 3> :
- <L0>:
- return _3;
- }
- prvResetNextTaskUnblockTime ()
- {
- struct List_t * pxDelayedTaskList.107_1;
- long unsigned int _2;
- struct List_t * pxDelayedTaskList.108_3;
- struct xLIST_ITEM * _4;
- long unsigned int _5;
- <bb 2> :
- pxDelayedTaskList.107_1 ={v} pxDelayedTaskList;
- _2 ={v} pxDelayedTaskList.107_1->uxNumberOfItems;
- if (_2 == 0)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- xNextTaskUnblockTime ={v} 4294967295;
- goto <bb 5>; [INV]
- <bb 4> :
- pxDelayedTaskList.108_3 ={v} pxDelayedTaskList;
- _4 = pxDelayedTaskList.108_3->xListEnd.pxNext;
- _5 = _4->xItemValue;
- xNextTaskUnblockTime ={v} _5;
- <bb 5> :
- return;
- }
- prvDeleteTCB (struct TCB_t * pxTCB)
- {
- StackType_t * _1;
- <bb 2> :
- _1 = pxTCB_3(D)->pxStack;
- vPortFree (_1);
- vPortFree (pxTCB_3(D));
- return;
- }
- uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask)
- {
- UBaseType_t uxReturn;
- uint8_t * pucEndOfStack;
- struct TCB_t * pxTCB;
- UBaseType_t D.8007;
- struct TCB_t * iftmp.106;
- short unsigned int _1;
- struct TCB_t * iftmp.106_2;
- struct TCB_t * iftmp.106_4;
- struct TCB_t * iftmp.106_6;
- UBaseType_t _11;
- <bb 2> :
- if (xTask_3(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.106_6 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.106_4 = xTask_3(D);
- <bb 5> :
- # iftmp.106_2 = PHI <iftmp.106_6(3), iftmp.106_4(4)>
- pxTCB_7 = iftmp.106_2;
- pucEndOfStack_8 = pxTCB_7->pxStack;
- _1 = prvTaskCheckFreeStackSpace (pucEndOfStack_8);
- uxReturn_10 = (UBaseType_t) _1;
- _11 = uxReturn_10;
- <bb 6> :
- <L3>:
- return _11;
- }
- prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte)
- {
- uint32_t ulCount;
- uint16_t D.8001;
- unsigned char _1;
- uint16_t _8;
- <bb 2> :
- ulCount_4 = 0;
- goto <bb 4>; [INV]
- <bb 3> :
- pucStackByte_9 = pucStackByte_2 + 1;
- ulCount_10 = ulCount_3 + 1;
- <bb 4> :
- # pucStackByte_2 = PHI <pucStackByte_5(D)(2), pucStackByte_9(3)>
- # ulCount_3 = PHI <ulCount_4(2), ulCount_10(3)>
- _1 = *pucStackByte_2;
- if (_1 == 165)
- goto <bb 3>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 5> :
- ulCount_7 = ulCount_3 / 4;
- _8 = (uint16_t) ulCount_7;
- <bb 6> :
- <L3>:
- return _8;
- }
- prvListTasksWithinSingleList (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState)
- {
- struct List_t * const pxConstList;
- struct List_t * const pxConstList;
- UBaseType_t uxTask;
- struct TCB_t * pxFirstTCB;
- struct TCB_t * pxNextTCB;
- UBaseType_t D.7999;
- long unsigned int _1;
- struct ListItem_t * _2;
- struct xLIST_ITEM * _3;
- struct ListItem_t * _4;
- struct MiniListItem_t * _5;
- struct ListItem_t * _6;
- struct xLIST_ITEM * _7;
- struct ListItem_t * _8;
- struct ListItem_t * _9;
- struct xLIST_ITEM * _10;
- struct ListItem_t * _11;
- struct MiniListItem_t * _12;
- struct ListItem_t * _13;
- struct xLIST_ITEM * _14;
- struct ListItem_t * _15;
- long unsigned int _16;
- struct TaskStatus_t * _17;
- UBaseType_t _39;
- <bb 2> :
- uxTask_24 = 0;
- _1 ={v} pxList_26(D)->uxNumberOfItems;
- if (_1 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 3> :
- pxConstList_27 = pxList_26(D);
- _2 = pxConstList_27->pxIndex;
- _3 = _2->pxNext;
- pxConstList_27->pxIndex = _3;
- _4 = pxConstList_27->pxIndex;
- _5 = &pxConstList_27->xListEnd;
- if (_4 == _5)
- goto <bb 4>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 4> :
- _6 = pxConstList_27->pxIndex;
- _7 = _6->pxNext;
- pxConstList_27->pxIndex = _7;
- <bb 5> :
- _8 = pxConstList_27->pxIndex;
- pxFirstTCB_30 = _8->pvOwner;
- <bb 6> :
- # uxTask_18 = PHI <uxTask_24(5), uxTask_38(8)>
- pxConstList_31 = pxList_26(D);
- _9 = pxConstList_31->pxIndex;
- _10 = _9->pxNext;
- pxConstList_31->pxIndex = _10;
- _11 = pxConstList_31->pxIndex;
- _12 = &pxConstList_31->xListEnd;
- if (_11 == _12)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- _13 = pxConstList_31->pxIndex;
- _14 = _13->pxNext;
- pxConstList_31->pxIndex = _14;
- <bb 8> :
- _15 = pxConstList_31->pxIndex;
- pxNextTCB_34 = _15->pvOwner;
- _16 = uxTask_18 * 36;
- _17 = pxTaskStatusArray_35(D) + _16;
- vTaskGetInfo (pxNextTCB_34, _17, 1, eState_36(D));
- uxTask_38 = uxTask_18 + 1;
- if (pxNextTCB_34 != pxFirstTCB_30)
- goto <bb 6>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 9> :
- # uxTask_19 = PHI <uxTask_24(2), uxTask_38(8)>
- _39 = uxTask_19;
- <bb 10> :
- <L9>:
- return _39;
- }
- vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState)
- {
- struct TCB_t * pxTCB;
- struct TCB_t * iftmp.104;
- char * _1;
- long unsigned int _2;
- StackType_t * _3;
- long unsigned int _4;
- long unsigned int _5;
- struct TCB_t * pxCurrentTCB.105_6;
- struct xLIST * _7;
- <unnamed type> _8;
- StackType_t * _9;
- short unsigned int _10;
- struct TCB_t * iftmp.104_11;
- struct TCB_t * iftmp.104_16;
- struct TCB_t * iftmp.104_18;
- <bb 2> :
- if (xTask_15(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.104_18 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.104_16 = xTask_15(D);
- <bb 5> :
- # iftmp.104_11 = PHI <iftmp.104_18(3), iftmp.104_16(4)>
- pxTCB_19 = iftmp.104_11;
- pxTaskStatus_20(D)->xHandle = pxTCB_19;
- _1 = &pxTCB_19->pcTaskName[0];
- pxTaskStatus_20(D)->pcTaskName = _1;
- _2 = pxTCB_19->uxPriority;
- pxTaskStatus_20(D)->uxCurrentPriority = _2;
- _3 = pxTCB_19->pxStack;
- pxTaskStatus_20(D)->pxStackBase = _3;
- _4 = pxTCB_19->uxTCBNumber;
- pxTaskStatus_20(D)->xTaskNumber = _4;
- _5 = pxTCB_19->uxBasePriority;
- pxTaskStatus_20(D)->uxBasePriority = _5;
- pxTaskStatus_20(D)->ulRunTimeCounter = 0;
- if (eState_28(D) != 5)
- goto <bb 6>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 6> :
- pxCurrentTCB.105_6 ={v} pxCurrentTCB;
- if (pxTCB_19 == pxCurrentTCB.105_6)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- pxTaskStatus_20(D)->eCurrentState = 0;
- goto <bb 13>; [INV]
- <bb 8> :
- pxTaskStatus_20(D)->eCurrentState = eState_28(D);
- if (eState_28(D) == 3)
- goto <bb 9>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 9> :
- vTaskSuspendAll ();
- _7 = pxTCB_19->xEventListItem.pvContainer;
- if (_7 != 0B)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- pxTaskStatus_20(D)->eCurrentState = 2;
- <bb 11> :
- xTaskResumeAll ();
- goto <bb 13>; [INV]
- <bb 12> :
- _8 = eTaskGetState (pxTCB_19);
- pxTaskStatus_20(D)->eCurrentState = _8;
- <bb 13> :
- if (xGetFreeStackSpace_36(D) != 0)
- goto <bb 14>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 14> :
- _9 = pxTCB_19->pxStack;
- _10 = prvTaskCheckFreeStackSpace (_9);
- pxTaskStatus_20(D)->usStackHighWaterMark = _10;
- goto <bb 16>; [INV]
- <bb 15> :
- pxTaskStatus_20(D)->usStackHighWaterMark = 0;
- <bb 16> :
- return;
- }
- prvCheckTasksWaitingTermination ()
- {
- struct TCB_t * pxTCB;
- struct xLIST_ITEM * _1;
- struct ListItem_t * _2;
- long unsigned int uxCurrentNumberOfTasks.101_3;
- long unsigned int _4;
- long unsigned int uxDeletedTasksWaitingCleanUp.102_5;
- long unsigned int _6;
- long unsigned int uxDeletedTasksWaitingCleanUp.103_7;
- <bb 2> :
- goto <bb 4>; [INV]
- <bb 3> :
- vPortEnterCritical ();
- _1 = xTasksWaitingTermination.xListEnd.pxNext;
- pxTCB_11 = _1->pvOwner;
- _2 = &pxTCB_11->xStateListItem;
- uxListRemove (_2);
- uxCurrentNumberOfTasks.101_3 ={v} uxCurrentNumberOfTasks;
- _4 = uxCurrentNumberOfTasks.101_3 + 4294967295;
- uxCurrentNumberOfTasks ={v} _4;
- uxDeletedTasksWaitingCleanUp.102_5 ={v} uxDeletedTasksWaitingCleanUp;
- _6 = uxDeletedTasksWaitingCleanUp.102_5 + 4294967295;
- uxDeletedTasksWaitingCleanUp ={v} _6;
- vPortExitCritical ();
- prvDeleteTCB (pxTCB_11);
- <bb 4> :
- uxDeletedTasksWaitingCleanUp.103_7 ={v} uxDeletedTasksWaitingCleanUp;
- if (uxDeletedTasksWaitingCleanUp.103_7 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 5> :
- return;
- }
- prvInitialiseTaskLists ()
- {
- UBaseType_t uxPriority;
- struct List_t * _1;
- <bb 2> :
- uxPriority_4 = 0;
- goto <bb 4>; [INV]
- <bb 3> :
- _1 = &pxReadyTasksLists[uxPriority_2];
- vListInitialise (_1);
- uxPriority_14 = uxPriority_2 + 1;
- <bb 4> :
- # uxPriority_2 = PHI <uxPriority_4(2), uxPriority_14(3)>
- if (uxPriority_2 <= 4)
- goto <bb 3>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 5> :
- vListInitialise (&xDelayedTaskList1);
- vListInitialise (&xDelayedTaskList2);
- vListInitialise (&xPendingReadyList);
- vListInitialise (&xTasksWaitingTermination);
- vListInitialise (&xSuspendedTaskList);
- pxDelayedTaskList ={v} &xDelayedTaskList1;
- pxOverflowDelayedTaskList ={v} &xDelayedTaskList2;
- return;
- }
- prvIdleTask (void * pvParameters)
- {
- long unsigned int _1;
- volatile uint32_t * _2;
- <bb 2> :
- prvCheckTasksWaitingTermination ();
- _1 ={v} pxReadyTasksLists[0].uxNumberOfItems;
- if (_1 > 1)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- _2 = 3758157060B;
- *_2 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 4> :
- goto <bb 2>; [INV]
- }
- vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle)
- {
- struct TCB_t * pxTCB;
- <bb 2> :
- if (xTask_2(D) != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- pxTCB_4 = xTask_2(D);
- pxTCB_4->uxTaskNumber = uxHandle_5(D);
- <bb 4> :
- return;
- }
- uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask)
- {
- const struct TCB_t * pxTCB;
- UBaseType_t uxReturn;
- UBaseType_t D.7968;
- UBaseType_t _7;
- <bb 2> :
- if (xTask_2(D) != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- pxTCB_4 = xTask_2(D);
- uxReturn_6 = pxTCB_4->uxTaskNumber;
- goto <bb 5>; [INV]
- <bb 4> :
- uxReturn_3 = 0;
- <bb 5> :
- # uxReturn_1 = PHI <uxReturn_6(3), uxReturn_3(4)>
- _7 = uxReturn_1;
- <bb 6> :
- <L3>:
- return _7;
- }
- vTaskMissedYield ()
- {
- <bb 2> :
- xYieldPending ={v} 1;
- return;
- }
- xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- const TickType_t xElapsedTime;
- const TickType_t xConstTickCount;
- BaseType_t xReturn;
- BaseType_t D.7963;
- long unsigned int _1;
- struct TCB_t * pxCurrentTCB.98_2;
- unsigned char _3;
- struct TCB_t * pxCurrentTCB.99_4;
- long unsigned int _5;
- long int _6;
- long int xNumOfOverflows.100_7;
- long unsigned int _8;
- long unsigned int _9;
- long unsigned int _10;
- long unsigned int _11;
- BaseType_t _31;
- <bb 2> :
- if (pxTimeOut_14(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (pxTicksToWait_15(D) == 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- vPortEnterCritical ();
- xConstTickCount_18 ={v} xTickCount;
- _1 = pxTimeOut_14(D)->xTimeOnEntering;
- xElapsedTime_19 = xConstTickCount_18 - _1;
- pxCurrentTCB.98_2 ={v} pxCurrentTCB;
- _3 = pxCurrentTCB.98_2->ucDelayAborted;
- if (_3 != 0)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- pxCurrentTCB.99_4 ={v} pxCurrentTCB;
- pxCurrentTCB.99_4->ucDelayAborted = 0;
- xReturn_29 = 1;
- goto <bb 20>; [INV]
- <bb 12> :
- _5 = *pxTicksToWait_15(D);
- if (_5 == 4294967295)
- goto <bb 13>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 13> :
- xReturn_27 = 0;
- goto <bb 20>; [INV]
- <bb 14> :
- _6 = pxTimeOut_14(D)->xOverflowCount;
- xNumOfOverflows.100_7 ={v} xNumOfOverflows;
- if (_6 != xNumOfOverflows.100_7)
- goto <bb 15>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 15> :
- _8 = pxTimeOut_14(D)->xTimeOnEntering;
- if (xConstTickCount_18 >= _8)
- goto <bb 16>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 16> :
- xReturn_20 = 1;
- *pxTicksToWait_15(D) = 0;
- goto <bb 20>; [INV]
- <bb 17> :
- _9 = *pxTicksToWait_15(D);
- if (xElapsedTime_19 < _9)
- goto <bb 18>; [INV]
- else
- goto <bb 19>; [INV]
- <bb 18> :
- _10 = *pxTicksToWait_15(D);
- _11 = _10 - xElapsedTime_19;
- *pxTicksToWait_15(D) = _11;
- vTaskInternalSetTimeOutState (pxTimeOut_14(D));
- xReturn_26 = 0;
- goto <bb 20>; [INV]
- <bb 19> :
- *pxTicksToWait_15(D) = 0;
- xReturn_23 = 1;
- <bb 20> :
- # xReturn_12 = PHI <xReturn_29(11), xReturn_27(13), xReturn_20(16), xReturn_26(18), xReturn_23(19)>
- vPortExitCritical ();
- _31 = xReturn_12;
- <bb 21> :
- <L19>:
- return _31;
- }
- vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut)
- {
- long int xNumOfOverflows.96_1;
- long unsigned int xTickCount.97_2;
- <bb 2> :
- xNumOfOverflows.96_1 ={v} xNumOfOverflows;
- pxTimeOut_4(D)->xOverflowCount = xNumOfOverflows.96_1;
- xTickCount.97_2 ={v} xTickCount;
- pxTimeOut_4(D)->xTimeOnEntering = xTickCount.97_2;
- return;
- }
- vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut)
- {
- uint32_t ulNewBASEPRI;
- long int xNumOfOverflows.94_1;
- long unsigned int xTickCount.95_2;
- <bb 2> :
- if (pxTimeOut_3(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vPortEnterCritical ();
- xNumOfOverflows.94_1 ={v} xNumOfOverflows;
- pxTimeOut_3(D)->xOverflowCount = xNumOfOverflows.94_1;
- xTickCount.95_2 ={v} xTickCount;
- pxTimeOut_3(D)->xTimeOnEntering = xTickCount.95_2;
- vPortExitCritical ();
- return;
- }
- vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- struct List_t * const pxList;
- struct TCB_t * pxUnblockedTCB;
- long unsigned int uxSchedulerSuspended.91_1;
- long unsigned int _2;
- struct xLIST_ITEM * _3;
- struct xLIST_ITEM * _4;
- struct xLIST_ITEM * _5;
- struct xLIST_ITEM * _6;
- struct ListItem_t * _7;
- struct xLIST_ITEM * _8;
- long unsigned int _9;
- long unsigned int _10;
- struct xLIST_ITEM * _11;
- struct xLIST_ITEM * _12;
- struct xLIST_ITEM * _13;
- struct xLIST_ITEM * _14;
- struct ListItem_t * _15;
- struct ListItem_t * _16;
- struct xLIST_ITEM * _17;
- long unsigned int _18;
- long unsigned int _19;
- long unsigned int _20;
- long unsigned int uxTopReadyPriority.92_21;
- long unsigned int _22;
- long unsigned int _23;
- struct xLIST_ITEM * _24;
- struct xLIST_ITEM * _25;
- struct ListItem_t * _26;
- struct ListItem_t * _27;
- long unsigned int _28;
- struct List_t * _29;
- long unsigned int _30;
- long unsigned int _31;
- long unsigned int _32;
- long unsigned int _33;
- struct TCB_t * pxCurrentTCB.93_34;
- long unsigned int _35;
- <bb 2> :
- uxSchedulerSuspended.91_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.91_1 == 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- _2 = xItemValue_41(D) | 2147483648;
- pxEventListItem_42(D)->xItemValue = _2;
- pxUnblockedTCB_44 = pxEventListItem_42(D)->pvOwner;
- if (pxUnblockedTCB_44 == 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- pxList_45 = pxEventListItem_42(D)->pvContainer;
- _3 = pxEventListItem_42(D)->pxNext;
- _4 = pxEventListItem_42(D)->pxPrevious;
- _3->pxPrevious = _4;
- _5 = pxEventListItem_42(D)->pxPrevious;
- _6 = pxEventListItem_42(D)->pxNext;
- _5->pxNext = _6;
- _7 = pxList_45->pxIndex;
- if (pxEventListItem_42(D) == _7)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- _8 = pxEventListItem_42(D)->pxPrevious;
- pxList_45->pxIndex = _8;
- <bb 12> :
- pxEventListItem_42(D)->pvContainer = 0B;
- _9 ={v} pxList_45->uxNumberOfItems;
- _10 = _9 + 4294967295;
- pxList_45->uxNumberOfItems ={v} _10;
- pxList_51 = pxUnblockedTCB_44->xStateListItem.pvContainer;
- _11 = pxUnblockedTCB_44->xStateListItem.pxNext;
- _12 = pxUnblockedTCB_44->xStateListItem.pxPrevious;
- _11->pxPrevious = _12;
- _13 = pxUnblockedTCB_44->xStateListItem.pxPrevious;
- _14 = pxUnblockedTCB_44->xStateListItem.pxNext;
- _13->pxNext = _14;
- _15 = pxList_51->pxIndex;
- _16 = &pxUnblockedTCB_44->xStateListItem;
- if (_15 == _16)
- goto <bb 13>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 13> :
- _17 = pxUnblockedTCB_44->xStateListItem.pxPrevious;
- pxList_51->pxIndex = _17;
- <bb 14> :
- pxUnblockedTCB_44->xStateListItem.pvContainer = 0B;
- _18 ={v} pxList_51->uxNumberOfItems;
- _19 = _18 + 4294967295;
- pxList_51->uxNumberOfItems ={v} _19;
- _20 = pxUnblockedTCB_44->uxPriority;
- uxTopReadyPriority.92_21 ={v} uxTopReadyPriority;
- if (_20 > uxTopReadyPriority.92_21)
- goto <bb 15>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 15> :
- _22 = pxUnblockedTCB_44->uxPriority;
- uxTopReadyPriority ={v} _22;
- <bb 16> :
- _23 = pxUnblockedTCB_44->uxPriority;
- pxIndex_58 = pxReadyTasksLists[_23].pxIndex;
- pxUnblockedTCB_44->xStateListItem.pxNext = pxIndex_58;
- _24 = pxIndex_58->pxPrevious;
- pxUnblockedTCB_44->xStateListItem.pxPrevious = _24;
- _25 = pxIndex_58->pxPrevious;
- _26 = &pxUnblockedTCB_44->xStateListItem;
- _25->pxNext = _26;
- _27 = &pxUnblockedTCB_44->xStateListItem;
- pxIndex_58->pxPrevious = _27;
- _28 = pxUnblockedTCB_44->uxPriority;
- _29 = &pxReadyTasksLists[_28];
- pxUnblockedTCB_44->xStateListItem.pvContainer = _29;
- _30 = pxUnblockedTCB_44->uxPriority;
- _31 ={v} pxReadyTasksLists[_30].uxNumberOfItems;
- _32 = _31 + 1;
- pxReadyTasksLists[_30].uxNumberOfItems ={v} _32;
- _33 = pxUnblockedTCB_44->uxPriority;
- pxCurrentTCB.93_34 ={v} pxCurrentTCB;
- _35 = pxCurrentTCB.93_34->uxPriority;
- if (_33 > _35)
- goto <bb 17>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 17> :
- xYieldPending ={v} 1;
- <bb 18> :
- return;
- }
- xTaskRemoveFromEventList (const struct List_t * const pxEventList)
- {
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- struct List_t * const pxList;
- BaseType_t xReturn;
- struct TCB_t * pxUnblockedTCB;
- BaseType_t D.7930;
- struct xLIST_ITEM * _1;
- struct xLIST_ITEM * _2;
- struct xLIST_ITEM * _3;
- struct xLIST_ITEM * _4;
- struct xLIST_ITEM * _5;
- struct ListItem_t * _6;
- struct ListItem_t * _7;
- struct xLIST_ITEM * _8;
- long unsigned int _9;
- long unsigned int _10;
- long unsigned int uxSchedulerSuspended.88_11;
- struct xLIST_ITEM * _12;
- struct xLIST_ITEM * _13;
- struct xLIST_ITEM * _14;
- struct xLIST_ITEM * _15;
- struct ListItem_t * _16;
- struct ListItem_t * _17;
- struct xLIST_ITEM * _18;
- long unsigned int _19;
- long unsigned int _20;
- long unsigned int _21;
- long unsigned int uxTopReadyPriority.89_22;
- long unsigned int _23;
- long unsigned int _24;
- struct xLIST_ITEM * _25;
- struct xLIST_ITEM * _26;
- struct ListItem_t * _27;
- struct ListItem_t * _28;
- long unsigned int _29;
- struct List_t * _30;
- long unsigned int _31;
- long unsigned int _32;
- long unsigned int _33;
- struct xLIST_ITEM * _34;
- struct xLIST_ITEM * _35;
- struct ListItem_t * _36;
- struct ListItem_t * _37;
- long unsigned int _38;
- long unsigned int _39;
- long unsigned int _40;
- struct TCB_t * pxCurrentTCB.90_41;
- long unsigned int _42;
- BaseType_t _82;
- <bb 2> :
- _1 = pxEventList_50(D)->xListEnd.pxNext;
- pxUnblockedTCB_51 = _1->pvOwner;
- if (pxUnblockedTCB_51 == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_83 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- pxList_52 = pxUnblockedTCB_51->xEventListItem.pvContainer;
- _2 = pxUnblockedTCB_51->xEventListItem.pxNext;
- _3 = pxUnblockedTCB_51->xEventListItem.pxPrevious;
- _2->pxPrevious = _3;
- _4 = pxUnblockedTCB_51->xEventListItem.pxPrevious;
- _5 = pxUnblockedTCB_51->xEventListItem.pxNext;
- _4->pxNext = _5;
- _6 = pxList_52->pxIndex;
- _7 = &pxUnblockedTCB_51->xEventListItem;
- if (_6 == _7)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- _8 = pxUnblockedTCB_51->xEventListItem.pxPrevious;
- pxList_52->pxIndex = _8;
- <bb 8> :
- pxUnblockedTCB_51->xEventListItem.pvContainer = 0B;
- _9 ={v} pxList_52->uxNumberOfItems;
- _10 = _9 + 4294967295;
- pxList_52->uxNumberOfItems ={v} _10;
- uxSchedulerSuspended.88_11 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.88_11 == 0)
- goto <bb 9>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 9> :
- pxList_65 = pxUnblockedTCB_51->xStateListItem.pvContainer;
- _12 = pxUnblockedTCB_51->xStateListItem.pxNext;
- _13 = pxUnblockedTCB_51->xStateListItem.pxPrevious;
- _12->pxPrevious = _13;
- _14 = pxUnblockedTCB_51->xStateListItem.pxPrevious;
- _15 = pxUnblockedTCB_51->xStateListItem.pxNext;
- _14->pxNext = _15;
- _16 = pxList_65->pxIndex;
- _17 = &pxUnblockedTCB_51->xStateListItem;
- if (_16 == _17)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- _18 = pxUnblockedTCB_51->xStateListItem.pxPrevious;
- pxList_65->pxIndex = _18;
- <bb 11> :
- pxUnblockedTCB_51->xStateListItem.pvContainer = 0B;
- _19 ={v} pxList_65->uxNumberOfItems;
- _20 = _19 + 4294967295;
- pxList_65->uxNumberOfItems ={v} _20;
- _21 = pxUnblockedTCB_51->uxPriority;
- uxTopReadyPriority.89_22 ={v} uxTopReadyPriority;
- if (_21 > uxTopReadyPriority.89_22)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- _23 = pxUnblockedTCB_51->uxPriority;
- uxTopReadyPriority ={v} _23;
- <bb 13> :
- _24 = pxUnblockedTCB_51->uxPriority;
- pxIndex_72 = pxReadyTasksLists[_24].pxIndex;
- pxUnblockedTCB_51->xStateListItem.pxNext = pxIndex_72;
- _25 = pxIndex_72->pxPrevious;
- pxUnblockedTCB_51->xStateListItem.pxPrevious = _25;
- _26 = pxIndex_72->pxPrevious;
- _27 = &pxUnblockedTCB_51->xStateListItem;
- _26->pxNext = _27;
- _28 = &pxUnblockedTCB_51->xStateListItem;
- pxIndex_72->pxPrevious = _28;
- _29 = pxUnblockedTCB_51->uxPriority;
- _30 = &pxReadyTasksLists[_29];
- pxUnblockedTCB_51->xStateListItem.pvContainer = _30;
- _31 = pxUnblockedTCB_51->uxPriority;
- _32 ={v} pxReadyTasksLists[_31].uxNumberOfItems;
- _33 = _32 + 1;
- pxReadyTasksLists[_31].uxNumberOfItems ={v} _33;
- goto <bb 15>; [INV]
- <bb 14> :
- pxIndex_58 = xPendingReadyList.pxIndex;
- pxUnblockedTCB_51->xEventListItem.pxNext = pxIndex_58;
- _34 = pxIndex_58->pxPrevious;
- pxUnblockedTCB_51->xEventListItem.pxPrevious = _34;
- _35 = pxIndex_58->pxPrevious;
- _36 = &pxUnblockedTCB_51->xEventListItem;
- _35->pxNext = _36;
- _37 = &pxUnblockedTCB_51->xEventListItem;
- pxIndex_58->pxPrevious = _37;
- pxUnblockedTCB_51->xEventListItem.pvContainer = &xPendingReadyList;
- _38 ={v} xPendingReadyList.uxNumberOfItems;
- _39 = _38 + 1;
- xPendingReadyList.uxNumberOfItems ={v} _39;
- <bb 15> :
- _40 = pxUnblockedTCB_51->uxPriority;
- pxCurrentTCB.90_41 ={v} pxCurrentTCB;
- _42 = pxCurrentTCB.90_41->uxPriority;
- if (_40 > _42)
- goto <bb 16>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 16> :
- xReturn_80 = 1;
- xYieldPending ={v} 1;
- goto <bb 18>; [INV]
- <bb 17> :
- xReturn_79 = 0;
- <bb 18> :
- # xReturn_43 = PHI <xReturn_80(16), xReturn_79(17)>
- _82 = xReturn_43;
- <bb 19> :
- <L15>:
- return _82;
- }
- vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
- {
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct TCB_t * pxCurrentTCB.83_1;
- struct TCB_t * pxCurrentTCB.84_2;
- struct xLIST_ITEM * _3;
- struct TCB_t * pxCurrentTCB.85_4;
- struct xLIST_ITEM * _5;
- struct ListItem_t * _6;
- struct TCB_t * pxCurrentTCB.86_7;
- struct ListItem_t * _8;
- struct TCB_t * pxCurrentTCB.87_9;
- long unsigned int _10;
- long unsigned int _11;
- <bb 2> :
- if (pxEventList_13(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- pxIndex_15 = pxEventList_13(D)->pxIndex;
- pxCurrentTCB.83_1 ={v} pxCurrentTCB;
- pxCurrentTCB.83_1->xEventListItem.pxNext = pxIndex_15;
- pxCurrentTCB.84_2 ={v} pxCurrentTCB;
- _3 = pxIndex_15->pxPrevious;
- pxCurrentTCB.84_2->xEventListItem.pxPrevious = _3;
- pxCurrentTCB.85_4 ={v} pxCurrentTCB;
- _5 = pxIndex_15->pxPrevious;
- _6 = &pxCurrentTCB.85_4->xEventListItem;
- _5->pxNext = _6;
- pxCurrentTCB.86_7 ={v} pxCurrentTCB;
- _8 = &pxCurrentTCB.86_7->xEventListItem;
- pxIndex_15->pxPrevious = _8;
- pxCurrentTCB.87_9 ={v} pxCurrentTCB;
- pxCurrentTCB.87_9->xEventListItem.pvContainer = pxEventList_13(D);
- _10 ={v} pxEventList_13(D)->uxNumberOfItems;
- _11 = _10 + 1;
- pxEventList_13(D)->uxNumberOfItems ={v} _11;
- if (xWaitIndefinitely_22(D) != 0)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- xTicksToWait_24 = 4294967295;
- <bb 8> :
- # xTicksToWait_12 = PHI <xTicksToWait_23(D)(6), xTicksToWait_24(7)>
- prvAddCurrentTaskToDelayedList (xTicksToWait_12, xWaitIndefinitely_22(D));
- return;
- }
- vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- long unsigned int uxSchedulerSuspended.76_1;
- struct TCB_t * pxCurrentTCB.77_2;
- long unsigned int _3;
- struct TCB_t * pxCurrentTCB.78_4;
- struct TCB_t * pxCurrentTCB.79_5;
- struct xLIST_ITEM * _6;
- struct TCB_t * pxCurrentTCB.80_7;
- struct xLIST_ITEM * _8;
- struct ListItem_t * _9;
- struct TCB_t * pxCurrentTCB.81_10;
- struct ListItem_t * _11;
- struct TCB_t * pxCurrentTCB.82_12;
- long unsigned int _13;
- long unsigned int _14;
- <bb 2> :
- if (pxEventList_15(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- uxSchedulerSuspended.76_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.76_1 == 0)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- pxCurrentTCB.77_2 ={v} pxCurrentTCB;
- _3 = xItemValue_17(D) | 2147483648;
- pxCurrentTCB.77_2->xEventListItem.xItemValue = _3;
- pxIndex_19 = pxEventList_15(D)->pxIndex;
- pxCurrentTCB.78_4 ={v} pxCurrentTCB;
- pxCurrentTCB.78_4->xEventListItem.pxNext = pxIndex_19;
- pxCurrentTCB.79_5 ={v} pxCurrentTCB;
- _6 = pxIndex_19->pxPrevious;
- pxCurrentTCB.79_5->xEventListItem.pxPrevious = _6;
- pxCurrentTCB.80_7 ={v} pxCurrentTCB;
- _8 = pxIndex_19->pxPrevious;
- _9 = &pxCurrentTCB.80_7->xEventListItem;
- _8->pxNext = _9;
- pxCurrentTCB.81_10 ={v} pxCurrentTCB;
- _11 = &pxCurrentTCB.81_10->xEventListItem;
- pxIndex_19->pxPrevious = _11;
- pxCurrentTCB.82_12 ={v} pxCurrentTCB;
- pxCurrentTCB.82_12->xEventListItem.pvContainer = pxEventList_15(D);
- _13 ={v} pxEventList_15(D)->uxNumberOfItems;
- _14 = _13 + 1;
- pxEventList_15(D)->uxNumberOfItems ={v} _14;
- prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1);
- return;
- }
- vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait)
- {
- uint32_t ulNewBASEPRI;
- struct TCB_t * pxCurrentTCB.75_1;
- struct ListItem_t * _2;
- <bb 2> :
- if (pxEventList_3(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- pxCurrentTCB.75_1 ={v} pxCurrentTCB;
- _2 = &pxCurrentTCB.75_1->xEventListItem;
- vListInsert (pxEventList_3(D), _2);
- prvAddCurrentTaskToDelayedList (xTicksToWait_6(D), 1);
- return;
- }
- __attribute__((used))
- vTaskSwitchContext ()
- {
- uint32_t ulNewBASEPRI;
- struct List_t * const pxConstList;
- UBaseType_t uxTopPriority;
- long unsigned int uxSchedulerSuspended.74_1;
- long unsigned int _2;
- struct ListItem_t * _3;
- struct xLIST_ITEM * _4;
- struct ListItem_t * _5;
- struct MiniListItem_t * _6;
- struct ListItem_t * _7;
- struct xLIST_ITEM * _8;
- struct ListItem_t * _9;
- void * _10;
- <bb 2> :
- uxSchedulerSuspended.74_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.74_1 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- xYieldPending ={v} 1;
- goto <bb 14>; [INV]
- <bb 4> :
- xYieldPending ={v} 0;
- uxTopPriority_16 ={v} uxTopReadyPriority;
- goto <bb 10>; [INV]
- <bb 5> :
- if (uxTopPriority_11 == 0)
- goto <bb 6>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 6> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
- <bb 7> :
- <bb 8> :
- goto <bb 8>; [INV]
- <bb 9> :
- uxTopPriority_22 = uxTopPriority_11 + 4294967295;
- <bb 10> :
- # uxTopPriority_11 = PHI <uxTopPriority_16(4), uxTopPriority_22(9)>
- _2 ={v} pxReadyTasksLists[uxTopPriority_11].uxNumberOfItems;
- if (_2 == 0)
- goto <bb 5>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 11> :
- pxConstList_17 = &pxReadyTasksLists[uxTopPriority_11];
- _3 = pxConstList_17->pxIndex;
- _4 = _3->pxNext;
- pxConstList_17->pxIndex = _4;
- _5 = pxConstList_17->pxIndex;
- _6 = &pxConstList_17->xListEnd;
- if (_5 == _6)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- _7 = pxConstList_17->pxIndex;
- _8 = _7->pxNext;
- pxConstList_17->pxIndex = _8;
- <bb 13> :
- _9 = pxConstList_17->pxIndex;
- _10 = _9->pvOwner;
- pxCurrentTCB ={v} _10;
- uxTopReadyPriority ={v} uxTopPriority_11;
- <bb 14> :
- return;
- }
- xTaskIncrementTick ()
- {
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- struct List_t * const pxList;
- struct List_t * pxTemp;
- const TickType_t xConstTickCount;
- BaseType_t xSwitchRequired;
- TickType_t xItemValue;
- struct TCB_t * pxTCB;
- BaseType_t D.7897;
- long unsigned int uxSchedulerSuspended.61_1;
- long unsigned int xTickCount.62_2;
- struct List_t * pxDelayedTaskList.63_3;
- long unsigned int _4;
- struct List_t * pxOverflowDelayedTaskList.64_5;
- long int xNumOfOverflows.65_6;
- long int _7;
- long unsigned int xNextTaskUnblockTime.66_8;
- struct List_t * pxDelayedTaskList.67_9;
- long unsigned int _10;
- struct List_t * pxDelayedTaskList.68_11;
- struct xLIST_ITEM * _12;
- struct xLIST_ITEM * _13;
- struct xLIST_ITEM * _14;
- struct xLIST_ITEM * _15;
- struct xLIST_ITEM * _16;
- struct ListItem_t * _17;
- struct ListItem_t * _18;
- struct xLIST_ITEM * _19;
- long unsigned int _20;
- long unsigned int _21;
- struct xLIST * _22;
- struct xLIST_ITEM * _23;
- struct xLIST_ITEM * _24;
- struct xLIST_ITEM * _25;
- struct xLIST_ITEM * _26;
- struct ListItem_t * _27;
- struct ListItem_t * _28;
- struct xLIST_ITEM * _29;
- long unsigned int _30;
- long unsigned int _31;
- long unsigned int _32;
- long unsigned int uxTopReadyPriority.69_33;
- long unsigned int _34;
- long unsigned int _35;
- struct xLIST_ITEM * _36;
- struct xLIST_ITEM * _37;
- struct ListItem_t * _38;
- struct ListItem_t * _39;
- long unsigned int _40;
- struct List_t * _41;
- long unsigned int _42;
- long unsigned int _43;
- long unsigned int _44;
- long unsigned int _45;
- struct TCB_t * pxCurrentTCB.70_46;
- long unsigned int _47;
- struct TCB_t * pxCurrentTCB.71_48;
- long unsigned int _49;
- long unsigned int _50;
- long int xYieldPending.72_51;
- long unsigned int xPendedTicks.73_52;
- long unsigned int _53;
- BaseType_t _104;
- <bb 2> :
- xSwitchRequired_67 = 0;
- uxSchedulerSuspended.61_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.61_1 == 0)
- goto <bb 3>; [INV]
- else
- goto <bb 29>; [INV]
- <bb 3> :
- xTickCount.62_2 ={v} xTickCount;
- xConstTickCount_70 = xTickCount.62_2 + 1;
- xTickCount ={v} xConstTickCount_70;
- if (xConstTickCount_70 == 0)
- goto <bb 4>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 4> :
- pxDelayedTaskList.63_3 ={v} pxDelayedTaskList;
- _4 ={v} pxDelayedTaskList.63_3->uxNumberOfItems;
- if (_4 != 0)
- goto <bb 5>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 5> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_105 : "i" 16 : "memory");
- <bb 6> :
- <bb 7> :
- goto <bb 7>; [INV]
- <bb 8> :
- pxTemp_72 ={v} pxDelayedTaskList;
- pxOverflowDelayedTaskList.64_5 ={v} pxOverflowDelayedTaskList;
- pxDelayedTaskList ={v} pxOverflowDelayedTaskList.64_5;
- pxOverflowDelayedTaskList ={v} pxTemp_72;
- xNumOfOverflows.65_6 ={v} xNumOfOverflows;
- _7 = xNumOfOverflows.65_6 + 1;
- xNumOfOverflows ={v} _7;
- prvResetNextTaskUnblockTime ();
- <bb 9> :
- xNextTaskUnblockTime.66_8 ={v} xNextTaskUnblockTime;
- if (xConstTickCount_70 >= xNextTaskUnblockTime.66_8)
- goto <bb 10>; [INV]
- else
- goto <bb 25>; [INV]
- <bb 10> :
- # xSwitchRequired_54 = PHI <xSwitchRequired_67(9), xSwitchRequired_55(24)>
- pxDelayedTaskList.67_9 ={v} pxDelayedTaskList;
- _10 ={v} pxDelayedTaskList.67_9->uxNumberOfItems;
- if (_10 == 0)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- xNextTaskUnblockTime ={v} 4294967295;
- goto <bb 25>; [INV]
- <bb 12> :
- pxDelayedTaskList.68_11 ={v} pxDelayedTaskList;
- _12 = pxDelayedTaskList.68_11->xListEnd.pxNext;
- pxTCB_77 = _12->pvOwner;
- xItemValue_78 = pxTCB_77->xStateListItem.xItemValue;
- if (xConstTickCount_70 < xItemValue_78)
- goto <bb 13>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 13> :
- xNextTaskUnblockTime ={v} xItemValue_78;
- goto <bb 25>; [INV]
- <bb 14> :
- pxList_79 = pxTCB_77->xStateListItem.pvContainer;
- _13 = pxTCB_77->xStateListItem.pxNext;
- _14 = pxTCB_77->xStateListItem.pxPrevious;
- _13->pxPrevious = _14;
- _15 = pxTCB_77->xStateListItem.pxPrevious;
- _16 = pxTCB_77->xStateListItem.pxNext;
- _15->pxNext = _16;
- _17 = pxList_79->pxIndex;
- _18 = &pxTCB_77->xStateListItem;
- if (_17 == _18)
- goto <bb 15>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 15> :
- _19 = pxTCB_77->xStateListItem.pxPrevious;
- pxList_79->pxIndex = _19;
- <bb 16> :
- pxTCB_77->xStateListItem.pvContainer = 0B;
- _20 ={v} pxList_79->uxNumberOfItems;
- _21 = _20 + 4294967295;
- pxList_79->uxNumberOfItems ={v} _21;
- _22 = pxTCB_77->xEventListItem.pvContainer;
- if (_22 != 0B)
- goto <bb 17>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 17> :
- pxList_85 = pxTCB_77->xEventListItem.pvContainer;
- _23 = pxTCB_77->xEventListItem.pxNext;
- _24 = pxTCB_77->xEventListItem.pxPrevious;
- _23->pxPrevious = _24;
- _25 = pxTCB_77->xEventListItem.pxPrevious;
- _26 = pxTCB_77->xEventListItem.pxNext;
- _25->pxNext = _26;
- _27 = pxList_85->pxIndex;
- _28 = &pxTCB_77->xEventListItem;
- if (_27 == _28)
- goto <bb 18>; [INV]
- else
- goto <bb 19>; [INV]
- <bb 18> :
- _29 = pxTCB_77->xEventListItem.pxPrevious;
- pxList_85->pxIndex = _29;
- <bb 19> :
- pxTCB_77->xEventListItem.pvContainer = 0B;
- _30 ={v} pxList_85->uxNumberOfItems;
- _31 = _30 + 4294967295;
- pxList_85->uxNumberOfItems ={v} _31;
- <bb 20> :
- _32 = pxTCB_77->uxPriority;
- uxTopReadyPriority.69_33 ={v} uxTopReadyPriority;
- if (_32 > uxTopReadyPriority.69_33)
- goto <bb 21>; [INV]
- else
- goto <bb 22>; [INV]
- <bb 21> :
- _34 = pxTCB_77->uxPriority;
- uxTopReadyPriority ={v} _34;
- <bb 22> :
- _35 = pxTCB_77->uxPriority;
- pxIndex_92 = pxReadyTasksLists[_35].pxIndex;
- pxTCB_77->xStateListItem.pxNext = pxIndex_92;
- _36 = pxIndex_92->pxPrevious;
- pxTCB_77->xStateListItem.pxPrevious = _36;
- _37 = pxIndex_92->pxPrevious;
- _38 = &pxTCB_77->xStateListItem;
- _37->pxNext = _38;
- _39 = &pxTCB_77->xStateListItem;
- pxIndex_92->pxPrevious = _39;
- _40 = pxTCB_77->uxPriority;
- _41 = &pxReadyTasksLists[_40];
- pxTCB_77->xStateListItem.pvContainer = _41;
- _42 = pxTCB_77->uxPriority;
- _43 ={v} pxReadyTasksLists[_42].uxNumberOfItems;
- _44 = _43 + 1;
- pxReadyTasksLists[_42].uxNumberOfItems ={v} _44;
- _45 = pxTCB_77->uxPriority;
- pxCurrentTCB.70_46 ={v} pxCurrentTCB;
- _47 = pxCurrentTCB.70_46->uxPriority;
- if (_45 >= _47)
- goto <bb 23>; [INV]
- else
- goto <bb 24>; [INV]
- <bb 23> :
- xSwitchRequired_99 = 1;
- <bb 24> :
- # xSwitchRequired_55 = PHI <xSwitchRequired_54(22), xSwitchRequired_99(23)>
- goto <bb 10>; [INV]
- <bb 25> :
- # xSwitchRequired_56 = PHI <xSwitchRequired_67(9), xSwitchRequired_54(11), xSwitchRequired_54(13)>
- pxCurrentTCB.71_48 ={v} pxCurrentTCB;
- _49 = pxCurrentTCB.71_48->uxPriority;
- _50 ={v} pxReadyTasksLists[_49].uxNumberOfItems;
- if (_50 > 1)
- goto <bb 26>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 26> :
- xSwitchRequired_102 = 1;
- <bb 27> :
- # xSwitchRequired_57 = PHI <xSwitchRequired_56(25), xSwitchRequired_102(26)>
- xYieldPending.72_51 ={v} xYieldPending;
- if (xYieldPending.72_51 != 0)
- goto <bb 28>; [INV]
- else
- goto <bb 30>; [INV]
- <bb 28> :
- xSwitchRequired_103 = 1;
- goto <bb 30>; [INV]
- <bb 29> :
- xPendedTicks.73_52 ={v} xPendedTicks;
- _53 = xPendedTicks.73_52 + 1;
- xPendedTicks ={v} _53;
- <bb 30> :
- # xSwitchRequired_58 = PHI <xSwitchRequired_103(28), xSwitchRequired_67(29), xSwitchRequired_57(27)>
- _104 = xSwitchRequired_58;
- <bb 31> :
- <L35>:
- return _104;
- }
- xTaskAbortDelay (struct tskTaskControlBlock * xTask)
- {
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- BaseType_t xReturn;
- struct TCB_t * pxTCB;
- BaseType_t D.7863;
- <unnamed type> _1;
- struct ListItem_t * _2;
- struct xLIST * _3;
- struct ListItem_t * _4;
- long unsigned int _5;
- long unsigned int uxTopReadyPriority.59_6;
- long unsigned int _7;
- long unsigned int _8;
- struct xLIST_ITEM * _9;
- struct xLIST_ITEM * _10;
- struct ListItem_t * _11;
- struct ListItem_t * _12;
- long unsigned int _13;
- struct List_t * _14;
- long unsigned int _15;
- long unsigned int _16;
- long unsigned int _17;
- long unsigned int _18;
- struct TCB_t * pxCurrentTCB.60_19;
- long unsigned int _20;
- BaseType_t _47;
- <bb 2> :
- pxTCB_26 = xTask_25(D);
- if (pxTCB_26 == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vTaskSuspendAll ();
- _1 = eTaskGetState (xTask_25(D));
- if (_1 == 2)
- goto <bb 7>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 7> :
- xReturn_31 = 1;
- _2 = &pxTCB_26->xStateListItem;
- uxListRemove (_2);
- vPortEnterCritical ();
- _3 = pxTCB_26->xEventListItem.pvContainer;
- if (_3 != 0B)
- goto <bb 8>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 8> :
- _4 = &pxTCB_26->xEventListItem;
- uxListRemove (_4);
- pxTCB_26->ucDelayAborted = 1;
- <bb 9> :
- vPortExitCritical ();
- _5 = pxTCB_26->uxPriority;
- uxTopReadyPriority.59_6 ={v} uxTopReadyPriority;
- if (_5 > uxTopReadyPriority.59_6)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- _7 = pxTCB_26->uxPriority;
- uxTopReadyPriority ={v} _7;
- <bb 11> :
- _8 = pxTCB_26->uxPriority;
- pxIndex_38 = pxReadyTasksLists[_8].pxIndex;
- pxTCB_26->xStateListItem.pxNext = pxIndex_38;
- _9 = pxIndex_38->pxPrevious;
- pxTCB_26->xStateListItem.pxPrevious = _9;
- _10 = pxIndex_38->pxPrevious;
- _11 = &pxTCB_26->xStateListItem;
- _10->pxNext = _11;
- _12 = &pxTCB_26->xStateListItem;
- pxIndex_38->pxPrevious = _12;
- _13 = pxTCB_26->uxPriority;
- _14 = &pxReadyTasksLists[_13];
- pxTCB_26->xStateListItem.pvContainer = _14;
- _15 = pxTCB_26->uxPriority;
- _16 ={v} pxReadyTasksLists[_15].uxNumberOfItems;
- _17 = _16 + 1;
- pxReadyTasksLists[_15].uxNumberOfItems ={v} _17;
- _18 = pxTCB_26->uxPriority;
- pxCurrentTCB.60_19 ={v} pxCurrentTCB;
- _20 = pxCurrentTCB.60_19->uxPriority;
- if (_18 > _20)
- goto <bb 12>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 12> :
- xYieldPending ={v} 1;
- goto <bb 14>; [INV]
- <bb 13> :
- xReturn_30 = 0;
- <bb 14> :
- # xReturn_21 = PHI <xReturn_31(12), xReturn_30(13), xReturn_31(11)>
- xTaskResumeAll ();
- _47 = xReturn_21;
- <bb 15> :
- <L14>:
- return _47;
- }
- xTaskCatchUpTicks (TickType_t xTicksToCatchUp)
- {
- uint32_t ulNewBASEPRI;
- BaseType_t xYieldOccurred;
- BaseType_t D.7848;
- long unsigned int uxSchedulerSuspended.57_1;
- long unsigned int xPendedTicks.58_2;
- long unsigned int _3;
- BaseType_t _10;
- <bb 2> :
- uxSchedulerSuspended.57_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.57_1 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vTaskSuspendAll ();
- xPendedTicks.58_2 ={v} xPendedTicks;
- _3 = xTicksToCatchUp_6(D) + xPendedTicks.58_2;
- xPendedTicks ={v} _3;
- xYieldOccurred_9 = xTaskResumeAll ();
- _10 = xYieldOccurred_9;
- <bb 7> :
- <L3>:
- return _10;
- }
- uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime)
- {
- UBaseType_t uxQueue;
- UBaseType_t uxTask;
- UBaseType_t D.7844;
- long unsigned int D.7840;
- long unsigned int D.7839;
- long unsigned int D.7838;
- long unsigned int D.7837;
- long unsigned int D.7836;
- long unsigned int uxCurrentNumberOfTasks.54_1;
- long unsigned int _2;
- struct TaskStatus_t * _3;
- struct List_t * _4;
- long unsigned int _5;
- struct TaskStatus_t * _6;
- struct List_t * pxDelayedTaskList.55_7;
- long unsigned int _8;
- struct TaskStatus_t * _9;
- struct List_t * pxOverflowDelayedTaskList.56_10;
- long unsigned int _11;
- struct TaskStatus_t * _12;
- long unsigned int _13;
- struct TaskStatus_t * _14;
- long unsigned int _28;
- long unsigned int _31;
- long unsigned int _34;
- long unsigned int _37;
- long unsigned int _40;
- UBaseType_t _45;
- <bb 2> :
- uxTask_20 = 0;
- uxQueue_21 = 5;
- vTaskSuspendAll ();
- uxCurrentNumberOfTasks.54_1 ={v} uxCurrentNumberOfTasks;
- if (uxArraySize_24(D) >= uxCurrentNumberOfTasks.54_1)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- # uxTask_15 = PHI <uxTask_20(2), uxTask_29(3)>
- # uxQueue_17 = PHI <uxQueue_21(2), uxQueue_25(3)>
- uxQueue_25 = uxQueue_17 + 4294967295;
- _2 = uxTask_15 * 36;
- _3 = pxTaskStatusArray_26(D) + _2;
- _4 = &pxReadyTasksLists[uxQueue_25];
- _28 = prvListTasksWithinSingleList (_3, _4, 1);
- uxTask_29 = _28 + uxTask_15;
- if (uxQueue_25 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 4> :
- _5 = uxTask_29 * 36;
- _6 = pxTaskStatusArray_26(D) + _5;
- pxDelayedTaskList.55_7 ={v} pxDelayedTaskList;
- _31 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.55_7, 2);
- uxTask_32 = _31 + uxTask_29;
- _8 = uxTask_32 * 36;
- _9 = pxTaskStatusArray_26(D) + _8;
- pxOverflowDelayedTaskList.56_10 ={v} pxOverflowDelayedTaskList;
- _34 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.56_10, 2);
- uxTask_35 = _34 + uxTask_32;
- _11 = uxTask_35 * 36;
- _12 = pxTaskStatusArray_26(D) + _11;
- _37 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4);
- uxTask_38 = _37 + uxTask_35;
- _13 = uxTask_38 * 36;
- _14 = pxTaskStatusArray_26(D) + _13;
- _40 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3);
- uxTask_41 = _40 + uxTask_38;
- if (pulTotalRunTime_42(D) != 0B)
- goto <bb 5>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 5> :
- *pulTotalRunTime_42(D) = 0;
- <bb 6> :
- # uxTask_16 = PHI <uxTask_20(2), uxTask_41(5), uxTask_41(4)>
- xTaskResumeAll ();
- _45 = uxTask_16;
- <bb 7> :
- <L7>:
- return _45;
- }
- xTaskGetHandle (const char * pcNameToQuery)
- {
- uint32_t ulNewBASEPRI;
- struct TCB_t * pxTCB;
- UBaseType_t uxQueue;
- struct tskTaskControlBlock * D.7832;
- unsigned int _1;
- struct List_t * _2;
- struct List_t * pxDelayedTaskList.52_3;
- struct List_t * pxOverflowDelayedTaskList.53_4;
- struct tskTaskControlBlock * _31;
- <bb 2> :
- uxQueue_15 = 5;
- _1 = strlen (pcNameToQuery_17(D));
- if (_1 > 9)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vTaskSuspendAll ();
- <bb 7> :
- # uxQueue_5 = PHI <uxQueue_15(6), uxQueue_19(9)>
- uxQueue_19 = uxQueue_5 + 4294967295;
- _2 = &pxReadyTasksLists[uxQueue_19];
- pxTCB_21 = prvSearchForNameWithinSingleList (_2, pcNameToQuery_17(D));
- if (pxTCB_21 != 0B)
- goto <bb 8>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 8> :
- goto <bb 10>; [INV]
- <bb 9> :
- if (uxQueue_19 != 0)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 10> :
- if (pxTCB_21 == 0B)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- pxDelayedTaskList.52_3 ={v} pxDelayedTaskList;
- pxTCB_23 = prvSearchForNameWithinSingleList (pxDelayedTaskList.52_3, pcNameToQuery_17(D));
- <bb 12> :
- # pxTCB_6 = PHI <pxTCB_21(10), pxTCB_23(11)>
- if (pxTCB_6 == 0B)
- goto <bb 13>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 13> :
- pxOverflowDelayedTaskList.53_4 ={v} pxOverflowDelayedTaskList;
- pxTCB_25 = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.53_4, pcNameToQuery_17(D));
- <bb 14> :
- # pxTCB_7 = PHI <pxTCB_6(12), pxTCB_25(13)>
- if (pxTCB_7 == 0B)
- goto <bb 15>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 15> :
- pxTCB_27 = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery_17(D));
- <bb 16> :
- # pxTCB_8 = PHI <pxTCB_7(14), pxTCB_27(15)>
- if (pxTCB_8 == 0B)
- goto <bb 17>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 17> :
- pxTCB_29 = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery_17(D));
- <bb 18> :
- # pxTCB_9 = PHI <pxTCB_8(16), pxTCB_29(17)>
- xTaskResumeAll ();
- _31 = pxTCB_9;
- <bb 19> :
- <L15>:
- return _31;
- }
- prvSearchForNameWithinSingleList (struct List_t * pxList, const char * pcNameToQuery)
- {
- struct List_t * const pxConstList;
- struct List_t * const pxConstList;
- BaseType_t xBreakLoop;
- char cNextChar;
- UBaseType_t x;
- struct TCB_t * pxReturn;
- struct TCB_t * pxFirstTCB;
- struct TCB_t * pxNextTCB;
- struct TCB_t * D.7818;
- long unsigned int _1;
- struct ListItem_t * _2;
- struct xLIST_ITEM * _3;
- struct ListItem_t * _4;
- struct MiniListItem_t * _5;
- struct ListItem_t * _6;
- struct xLIST_ITEM * _7;
- struct ListItem_t * _8;
- struct ListItem_t * _9;
- struct xLIST_ITEM * _10;
- struct ListItem_t * _11;
- struct MiniListItem_t * _12;
- struct ListItem_t * _13;
- struct xLIST_ITEM * _14;
- struct ListItem_t * _15;
- const char * _16;
- char _17;
- struct TCB_t * _49;
- <bb 2> :
- pxReturn_30 = 0B;
- _1 ={v} pxList_32(D)->uxNumberOfItems;
- if (_1 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 21>; [INV]
- <bb 3> :
- pxConstList_33 = pxList_32(D);
- _2 = pxConstList_33->pxIndex;
- _3 = _2->pxNext;
- pxConstList_33->pxIndex = _3;
- _4 = pxConstList_33->pxIndex;
- _5 = &pxConstList_33->xListEnd;
- if (_4 == _5)
- goto <bb 4>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 4> :
- _6 = pxConstList_33->pxIndex;
- _7 = _6->pxNext;
- pxConstList_33->pxIndex = _7;
- <bb 5> :
- _8 = pxConstList_33->pxIndex;
- pxFirstTCB_36 = _8->pvOwner;
- <bb 6> :
- # pxReturn_18 = PHI <pxReturn_30(5), pxReturn_21(19)>
- pxConstList_37 = pxList_32(D);
- _9 = pxConstList_37->pxIndex;
- _10 = _9->pxNext;
- pxConstList_37->pxIndex = _10;
- _11 = pxConstList_37->pxIndex;
- _12 = &pxConstList_37->xListEnd;
- if (_11 == _12)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- _13 = pxConstList_37->pxIndex;
- _14 = _13->pxNext;
- pxConstList_37->pxIndex = _14;
- <bb 8> :
- _15 = pxConstList_37->pxIndex;
- pxNextTCB_40 = _15->pvOwner;
- xBreakLoop_41 = 0;
- x_42 = 0;
- goto <bb 16>; [INV]
- <bb 9> :
- cNextChar_43 = pxNextTCB_40->pcTaskName[x_23];
- _16 = pcNameToQuery_44(D) + x_23;
- _17 = *_16;
- if (cNextChar_43 != _17)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- xBreakLoop_47 = 1;
- goto <bb 13>; [INV]
- <bb 11> :
- if (cNextChar_43 == 0)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- pxReturn_45 = pxNextTCB_40;
- xBreakLoop_46 = 1;
- <bb 13> :
- # pxReturn_19 = PHI <pxReturn_20(10), pxReturn_20(11), pxReturn_45(12)>
- # xBreakLoop_24 = PHI <xBreakLoop_47(10), xBreakLoop_25(11), xBreakLoop_46(12)>
- if (xBreakLoop_24 != 0)
- goto <bb 14>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 14> :
- goto <bb 17>; [INV]
- <bb 15> :
- x_48 = x_23 + 1;
- <bb 16> :
- # pxReturn_20 = PHI <pxReturn_18(8), pxReturn_19(15)>
- # x_23 = PHI <x_42(8), x_48(15)>
- # xBreakLoop_25 = PHI <xBreakLoop_41(8), xBreakLoop_24(15)>
- if (x_23 <= 9)
- goto <bb 9>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 17> :
- # pxReturn_21 = PHI <pxReturn_19(14), pxReturn_20(16)>
- if (pxReturn_21 != 0B)
- goto <bb 18>; [INV]
- else
- goto <bb 19>; [INV]
- <bb 18> :
- goto <bb 20>; [INV]
- <bb 19> :
- if (pxNextTCB_40 != pxFirstTCB_36)
- goto <bb 6>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 20> :
- <bb 21> :
- # pxReturn_22 = PHI <pxReturn_30(2), pxReturn_21(20)>
- _49 = pxReturn_22;
- <bb 22> :
- <L22>:
- return _49;
- }
- pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery)
- {
- uint32_t ulNewBASEPRI;
- struct TCB_t * pxTCB;
- char * D.7799;
- struct TCB_t * iftmp.51;
- struct TCB_t * iftmp.51_1;
- struct TCB_t * iftmp.51_3;
- struct TCB_t * iftmp.51_5;
- char * _7;
- <bb 2> :
- if (xTaskToQuery_2(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.51_5 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.51_3 = xTaskToQuery_2(D);
- <bb 5> :
- # iftmp.51_1 = PHI <iftmp.51_5(3), iftmp.51_3(4)>
- pxTCB_6 = iftmp.51_1;
- if (pxTCB_6 == 0B)
- goto <bb 6>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 6> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
- <bb 7> :
- <bb 8> :
- goto <bb 8>; [INV]
- <bb 9> :
- _7 = &pxTCB_6->pcTaskName[0];
- <bb 10> :
- <L6>:
- return _7;
- }
- uxTaskGetNumberOfTasks ()
- {
- UBaseType_t D.7791;
- UBaseType_t _2;
- <bb 2> :
- _2 ={v} uxCurrentNumberOfTasks;
- <bb 3> :
- <L0>:
- return _2;
- }
- xTaskGetTickCountFromISR ()
- {
- UBaseType_t uxSavedInterruptStatus;
- TickType_t xReturn;
- TickType_t D.7789;
- TickType_t _5;
- <bb 2> :
- vPortValidateInterruptPriority ();
- uxSavedInterruptStatus_3 = 0;
- xReturn_4 ={v} xTickCount;
- _5 = xReturn_4;
- <bb 3> :
- <L0>:
- return _5;
- }
- xTaskGetTickCount ()
- {
- TickType_t xTicks;
- TickType_t D.7787;
- TickType_t _3;
- <bb 2> :
- xTicks_2 ={v} xTickCount;
- _3 = xTicks_2;
- <bb 3> :
- <L0>:
- return _3;
- }
- xTaskResumeAll ()
- {
- uint32_t ulNewBASEPRI;
- TickType_t xPendedCounts;
- struct ListItem_t * const pxIndex;
- struct List_t * const pxList;
- struct List_t * const pxList;
- BaseType_t xAlreadyYielded;
- struct TCB_t * pxTCB;
- BaseType_t D.7785;
- long unsigned int uxSchedulerSuspended.44_1;
- long unsigned int uxSchedulerSuspended.45_2;
- long unsigned int _3;
- long unsigned int uxSchedulerSuspended.46_4;
- long unsigned int uxCurrentNumberOfTasks.47_5;
- struct xLIST_ITEM * _6;
- struct xLIST_ITEM * _7;
- struct xLIST_ITEM * _8;
- struct xLIST_ITEM * _9;
- struct xLIST_ITEM * _10;
- struct ListItem_t * _11;
- struct ListItem_t * _12;
- struct xLIST_ITEM * _13;
- long unsigned int _14;
- long unsigned int _15;
- struct xLIST_ITEM * _16;
- struct xLIST_ITEM * _17;
- struct xLIST_ITEM * _18;
- struct xLIST_ITEM * _19;
- struct ListItem_t * _20;
- struct ListItem_t * _21;
- struct xLIST_ITEM * _22;
- long unsigned int _23;
- long unsigned int _24;
- long unsigned int _25;
- long unsigned int uxTopReadyPriority.48_26;
- long unsigned int _27;
- long unsigned int _28;
- struct xLIST_ITEM * _29;
- struct xLIST_ITEM * _30;
- struct ListItem_t * _31;
- struct ListItem_t * _32;
- long unsigned int _33;
- struct List_t * _34;
- long unsigned int _35;
- long unsigned int _36;
- long unsigned int _37;
- long unsigned int _38;
- struct TCB_t * pxCurrentTCB.49_39;
- long unsigned int _40;
- long unsigned int _41;
- long int _42;
- long int xYieldPending.50_43;
- volatile uint32_t * _44;
- BaseType_t _96;
- <bb 2> :
- pxTCB_57 = 0B;
- xAlreadyYielded_58 = 0;
- uxSchedulerSuspended.44_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.44_1 == 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_97 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vPortEnterCritical ();
- uxSchedulerSuspended.45_2 ={v} uxSchedulerSuspended;
- _3 = uxSchedulerSuspended.45_2 + 4294967295;
- uxSchedulerSuspended ={v} _3;
- uxSchedulerSuspended.46_4 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.46_4 == 0)
- goto <bb 7>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 7> :
- uxCurrentNumberOfTasks.47_5 ={v} uxCurrentNumberOfTasks;
- if (uxCurrentNumberOfTasks.47_5 != 0)
- goto <bb 8>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 8> :
- goto <bb 17>; [INV]
- <bb 9> :
- _6 = xPendingReadyList.xListEnd.pxNext;
- pxTCB_72 = _6->pvOwner;
- pxList_73 = pxTCB_72->xEventListItem.pvContainer;
- _7 = pxTCB_72->xEventListItem.pxNext;
- _8 = pxTCB_72->xEventListItem.pxPrevious;
- _7->pxPrevious = _8;
- _9 = pxTCB_72->xEventListItem.pxPrevious;
- _10 = pxTCB_72->xEventListItem.pxNext;
- _9->pxNext = _10;
- _11 = pxList_73->pxIndex;
- _12 = &pxTCB_72->xEventListItem;
- if (_11 == _12)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- _13 = pxTCB_72->xEventListItem.pxPrevious;
- pxList_73->pxIndex = _13;
- <bb 11> :
- pxTCB_72->xEventListItem.pvContainer = 0B;
- _14 ={v} pxList_73->uxNumberOfItems;
- _15 = _14 + 4294967295;
- pxList_73->uxNumberOfItems ={v} _15;
- __asm__ __volatile__("" : : : "memory");
- pxList_80 = pxTCB_72->xStateListItem.pvContainer;
- _16 = pxTCB_72->xStateListItem.pxNext;
- _17 = pxTCB_72->xStateListItem.pxPrevious;
- _16->pxPrevious = _17;
- _18 = pxTCB_72->xStateListItem.pxPrevious;
- _19 = pxTCB_72->xStateListItem.pxNext;
- _18->pxNext = _19;
- _20 = pxList_80->pxIndex;
- _21 = &pxTCB_72->xStateListItem;
- if (_20 == _21)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- _22 = pxTCB_72->xStateListItem.pxPrevious;
- pxList_80->pxIndex = _22;
- <bb 13> :
- pxTCB_72->xStateListItem.pvContainer = 0B;
- _23 ={v} pxList_80->uxNumberOfItems;
- _24 = _23 + 4294967295;
- pxList_80->uxNumberOfItems ={v} _24;
- _25 = pxTCB_72->uxPriority;
- uxTopReadyPriority.48_26 ={v} uxTopReadyPriority;
- if (_25 > uxTopReadyPriority.48_26)
- goto <bb 14>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 14> :
- _27 = pxTCB_72->uxPriority;
- uxTopReadyPriority ={v} _27;
- <bb 15> :
- _28 = pxTCB_72->uxPriority;
- pxIndex_87 = pxReadyTasksLists[_28].pxIndex;
- pxTCB_72->xStateListItem.pxNext = pxIndex_87;
- _29 = pxIndex_87->pxPrevious;
- pxTCB_72->xStateListItem.pxPrevious = _29;
- _30 = pxIndex_87->pxPrevious;
- _31 = &pxTCB_72->xStateListItem;
- _30->pxNext = _31;
- _32 = &pxTCB_72->xStateListItem;
- pxIndex_87->pxPrevious = _32;
- _33 = pxTCB_72->uxPriority;
- _34 = &pxReadyTasksLists[_33];
- pxTCB_72->xStateListItem.pvContainer = _34;
- _35 = pxTCB_72->uxPriority;
- _36 ={v} pxReadyTasksLists[_35].uxNumberOfItems;
- _37 = _36 + 1;
- pxReadyTasksLists[_35].uxNumberOfItems ={v} _37;
- _38 = pxTCB_72->uxPriority;
- pxCurrentTCB.49_39 ={v} pxCurrentTCB;
- _40 = pxCurrentTCB.49_39->uxPriority;
- if (_38 >= _40)
- goto <bb 16>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 16> :
- xYieldPending ={v} 1;
- <bb 17> :
- # pxTCB_45 = PHI <pxTCB_57(8), pxTCB_72(15), pxTCB_72(16)>
- _41 ={v} xPendingReadyList.uxNumberOfItems;
- if (_41 != 0)
- goto <bb 9>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 18> :
- if (pxTCB_45 != 0B)
- goto <bb 19>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 19> :
- prvResetNextTaskUnblockTime ();
- <bb 20> :
- xPendedCounts_63 ={v} xPendedTicks;
- if (xPendedCounts_63 != 0)
- goto <bb 21>; [INV]
- else
- goto <bb 25>; [INV]
- <bb 21> :
- # xPendedCounts_47 = PHI <xPendedCounts_63(20), xPendedCounts_66(23)>
- _42 = xTaskIncrementTick ();
- if (_42 != 0)
- goto <bb 22>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 22> :
- xYieldPending ={v} 1;
- <bb 23> :
- xPendedCounts_66 = xPendedCounts_47 + 4294967295;
- if (xPendedCounts_66 != 0)
- goto <bb 21>; [INV]
- else
- goto <bb 24>; [INV]
- <bb 24> :
- xPendedTicks ={v} 0;
- <bb 25> :
- xYieldPending.50_43 ={v} xYieldPending;
- if (xYieldPending.50_43 != 0)
- goto <bb 26>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 26> :
- xAlreadyYielded_68 = 1;
- _44 = 3758157060B;
- *_44 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 27> :
- # xAlreadyYielded_46 = PHI <xAlreadyYielded_58(6), xAlreadyYielded_58(25), xAlreadyYielded_58(7), xAlreadyYielded_68(26)>
- vPortExitCritical ();
- _96 = xAlreadyYielded_46;
- <bb 28> :
- <L33>:
- return _96;
- }
- vTaskSuspendAll ()
- {
- long unsigned int uxSchedulerSuspended.43_1;
- long unsigned int _2;
- <bb 2> :
- uxSchedulerSuspended.43_1 ={v} uxSchedulerSuspended;
- _2 = uxSchedulerSuspended.43_1 + 1;
- uxSchedulerSuspended ={v} _2;
- __asm__ __volatile__("" : : : "memory");
- return;
- }
- vTaskEndScheduler ()
- {
- uint32_t ulNewBASEPRI;
- <bb 2> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
- <bb 3> :
- xSchedulerRunning ={v} 0;
- vPortEndScheduler ();
- return;
- }
- vTaskStartScheduler ()
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- BaseType_t xReturn;
- long unsigned int vol.42;
- long int _1;
- long unsigned int vol.42_14;
- <bb 2> :
- xReturn_7 = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle);
- if (xReturn_7 == 1)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- xReturn_9 = xTimerCreateTimerTask ();
- <bb 4> :
- # xReturn_2 = PHI <xReturn_7(2), xReturn_9(3)>
- if (xReturn_2 == 1)
- goto <bb 5>; [INV]
- else
- goto <bb 7>; [INV]
- <bb 5> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
- <bb 6> :
- xNextTaskUnblockTime ={v} 4294967295;
- xSchedulerRunning ={v} 1;
- xTickCount ={v} 0;
- _1 = xPortStartScheduler ();
- goto <bb 11>; [INV]
- <bb 7> :
- if (xReturn_2 == -1)
- goto <bb 8>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 8> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_16 : "i" 16 : "memory");
- <bb 9> :
- <bb 10> :
- goto <bb 10>; [INV]
- <bb 11> :
- vol.42_14 ={v} uxTopUsedPriority;
- return;
- }
- xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume)
- {
- uint32_t ulNewMaskValue;
- uint32_t D.8324;
- uint32_t ulOriginalBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t D.8323;
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- UBaseType_t uxSavedInterruptStatus;
- struct TCB_t * const pxTCB;
- BaseType_t xYieldRequired;
- BaseType_t D.7744;
- long int _1;
- long unsigned int uxSchedulerSuspended.39_2;
- long unsigned int _3;
- struct TCB_t * pxCurrentTCB.40_4;
- long unsigned int _5;
- struct ListItem_t * _6;
- long unsigned int _7;
- long unsigned int uxTopReadyPriority.41_8;
- long unsigned int _9;
- long unsigned int _10;
- struct xLIST_ITEM * _11;
- struct xLIST_ITEM * _12;
- struct ListItem_t * _13;
- struct ListItem_t * _14;
- long unsigned int _15;
- struct List_t * _16;
- long unsigned int _17;
- long unsigned int _18;
- long unsigned int _19;
- struct ListItem_t * _20;
- BaseType_t _45;
- long unsigned int _49;
- <bb 2> :
- xYieldRequired_26 = 0;
- pxTCB_28 = xTaskToResume_27(D);
- if (xTaskToResume_27(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_46 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- vPortValidateInterruptPriority ();
- __asm__ __volatile__(" mrs %0, basepri
- mov %1, %2
- msr basepri, %1
- isb
- dsb
- " : "=r" ulOriginalBASEPRI_47, "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
- _49 = ulOriginalBASEPRI_47;
- <bb 7> :
- <L15>:
- _52 = _49;
- <bb 8> :
- uxSavedInterruptStatus_31 = _52;
- _1 = prvTaskIsTaskSuspended (pxTCB_28);
- if (_1 != 0)
- goto <bb 9>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 9> :
- uxSchedulerSuspended.39_2 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.39_2 == 0)
- goto <bb 10>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 10> :
- _3 = pxTCB_28->uxPriority;
- pxCurrentTCB.40_4 ={v} pxCurrentTCB;
- _5 = pxCurrentTCB.40_4->uxPriority;
- if (_3 >= _5)
- goto <bb 11>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 11> :
- xYieldRequired_34 = 1;
- xYieldPending ={v} 1;
- <bb 12> :
- # xYieldRequired_21 = PHI <xYieldRequired_26(10), xYieldRequired_34(11)>
- _6 = &pxTCB_28->xStateListItem;
- uxListRemove (_6);
- _7 = pxTCB_28->uxPriority;
- uxTopReadyPriority.41_8 ={v} uxTopReadyPriority;
- if (_7 > uxTopReadyPriority.41_8)
- goto <bb 13>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 13> :
- _9 = pxTCB_28->uxPriority;
- uxTopReadyPriority ={v} _9;
- <bb 14> :
- _10 = pxTCB_28->uxPriority;
- pxIndex_38 = pxReadyTasksLists[_10].pxIndex;
- pxTCB_28->xStateListItem.pxNext = pxIndex_38;
- _11 = pxIndex_38->pxPrevious;
- pxTCB_28->xStateListItem.pxPrevious = _11;
- _12 = pxIndex_38->pxPrevious;
- _13 = &pxTCB_28->xStateListItem;
- _12->pxNext = _13;
- _14 = &pxTCB_28->xStateListItem;
- pxIndex_38->pxPrevious = _14;
- _15 = pxTCB_28->uxPriority;
- _16 = &pxReadyTasksLists[_15];
- pxTCB_28->xStateListItem.pvContainer = _16;
- _17 = pxTCB_28->uxPriority;
- _18 ={v} pxReadyTasksLists[_17].uxNumberOfItems;
- _19 = _18 + 1;
- pxReadyTasksLists[_17].uxNumberOfItems ={v} _19;
- goto <bb 16>; [INV]
- <bb 15> :
- _20 = &pxTCB_28->xEventListItem;
- vListInsertEnd (&xPendingReadyList, _20);
- <bb 16> :
- # xYieldRequired_22 = PHI <xYieldRequired_26(8), xYieldRequired_26(15), xYieldRequired_21(14)>
- ulNewMaskValue_50 = uxSavedInterruptStatus_31;
- __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_50 : "memory");
- <bb 17> :
- _45 = xYieldRequired_22;
- <bb 18> :
- <L14>:
- return _45;
- }
- vTaskResume (struct tskTaskControlBlock * xTaskToResume)
- {
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- struct TCB_t * const pxTCB;
- struct TCB_t * pxCurrentTCB.36_1;
- long int _2;
- struct ListItem_t * _3;
- long unsigned int _4;
- long unsigned int uxTopReadyPriority.37_5;
- long unsigned int _6;
- long unsigned int _7;
- struct xLIST_ITEM * _8;
- struct xLIST_ITEM * _9;
- struct ListItem_t * _10;
- struct ListItem_t * _11;
- long unsigned int _12;
- struct List_t * _13;
- long unsigned int _14;
- long unsigned int _15;
- long unsigned int _16;
- long unsigned int _17;
- struct TCB_t * pxCurrentTCB.38_18;
- long unsigned int _19;
- volatile uint32_t * _20;
- <bb 2> :
- pxTCB_25 = xTaskToResume_24(D);
- if (xTaskToResume_24(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_42 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- pxCurrentTCB.36_1 ={v} pxCurrentTCB;
- if (pxTCB_25 != pxCurrentTCB.36_1)
- goto <bb 7>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 7> :
- if (pxTCB_25 != 0B)
- goto <bb 8>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 8> :
- vPortEnterCritical ();
- _2 = prvTaskIsTaskSuspended (pxTCB_25);
- if (_2 != 0)
- goto <bb 9>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 9> :
- _3 = &pxTCB_25->xStateListItem;
- uxListRemove (_3);
- _4 = pxTCB_25->uxPriority;
- uxTopReadyPriority.37_5 ={v} uxTopReadyPriority;
- if (_4 > uxTopReadyPriority.37_5)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- _6 = pxTCB_25->uxPriority;
- uxTopReadyPriority ={v} _6;
- <bb 11> :
- _7 = pxTCB_25->uxPriority;
- pxIndex_31 = pxReadyTasksLists[_7].pxIndex;
- pxTCB_25->xStateListItem.pxNext = pxIndex_31;
- _8 = pxIndex_31->pxPrevious;
- pxTCB_25->xStateListItem.pxPrevious = _8;
- _9 = pxIndex_31->pxPrevious;
- _10 = &pxTCB_25->xStateListItem;
- _9->pxNext = _10;
- _11 = &pxTCB_25->xStateListItem;
- pxIndex_31->pxPrevious = _11;
- _12 = pxTCB_25->uxPriority;
- _13 = &pxReadyTasksLists[_12];
- pxTCB_25->xStateListItem.pvContainer = _13;
- _14 = pxTCB_25->uxPriority;
- _15 ={v} pxReadyTasksLists[_14].uxNumberOfItems;
- _16 = _15 + 1;
- pxReadyTasksLists[_14].uxNumberOfItems ={v} _16;
- _17 = pxTCB_25->uxPriority;
- pxCurrentTCB.38_18 ={v} pxCurrentTCB;
- _19 = pxCurrentTCB.38_18->uxPriority;
- if (_17 >= _19)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- _20 = 3758157060B;
- *_20 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 13> :
- vPortExitCritical ();
- <bb 14> :
- return;
- }
- prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask)
- {
- uint32_t ulNewBASEPRI;
- const struct TCB_t * const pxTCB;
- BaseType_t xReturn;
- BaseType_t D.7714;
- struct xLIST * _1;
- struct xLIST * _2;
- struct xLIST * _3;
- BaseType_t _10;
- <bb 2> :
- xReturn_5 = 0;
- pxTCB_7 = xTask_6(D);
- if (xTask_6(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- _1 = pxTCB_7->xStateListItem.pvContainer;
- if (_1 == &xSuspendedTaskList)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- _2 = pxTCB_7->xEventListItem.pvContainer;
- if (_2 != &xPendingReadyList)
- goto <bb 8>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 8> :
- _3 = pxTCB_7->xEventListItem.pvContainer;
- if (_3 == 0B)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- xReturn_9 = 1;
- <bb 10> :
- # xReturn_4 = PHI <xReturn_5(6), xReturn_9(9), xReturn_5(7), xReturn_5(8)>
- _10 = xReturn_4;
- <bb 11> :
- <L12>:
- return _10;
- }
- vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend)
- {
- uint32_t ulNewBASEPRI;
- BaseType_t x;
- struct TCB_t * pxTCB;
- struct TCB_t * iftmp.30;
- struct ListItem_t * _1;
- long unsigned int _2;
- struct xLIST * _3;
- struct ListItem_t * _4;
- struct ListItem_t * _5;
- unsigned char _6;
- long int xSchedulerRunning.31_7;
- struct TCB_t * pxCurrentTCB.32_8;
- long int xSchedulerRunning.33_9;
- long unsigned int uxSchedulerSuspended.34_10;
- volatile uint32_t * _11;
- long unsigned int _12;
- long unsigned int uxCurrentNumberOfTasks.35_13;
- struct TCB_t * iftmp.30_15;
- struct TCB_t * iftmp.30_24;
- struct TCB_t * iftmp.30_25;
- <bb 2> :
- vPortEnterCritical ();
- if (xTaskToSuspend_23(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.30_25 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.30_24 = xTaskToSuspend_23(D);
- <bb 5> :
- # iftmp.30_15 = PHI <iftmp.30_25(3), iftmp.30_24(4)>
- pxTCB_26 = iftmp.30_15;
- _1 = &pxTCB_26->xStateListItem;
- _2 = uxListRemove (_1);
- <bb 6> :
- _3 = pxTCB_26->xEventListItem.pvContainer;
- if (_3 != 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- _4 = &pxTCB_26->xEventListItem;
- uxListRemove (_4);
- <bb 8> :
- _5 = &pxTCB_26->xStateListItem;
- vListInsertEnd (&xSuspendedTaskList, _5);
- x_30 = 0;
- goto <bb 12>; [INV]
- <bb 9> :
- _6 ={v} pxTCB_26->ucNotifyState[x_14];
- if (_6 == 1)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- pxTCB_26->ucNotifyState[x_14] ={v} 0;
- <bb 11> :
- x_41 = x_14 + 1;
- <bb 12> :
- # x_14 = PHI <x_30(8), x_41(11)>
- if (x_14 <= 0)
- goto <bb 9>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 13> :
- vPortExitCritical ();
- xSchedulerRunning.31_7 ={v} xSchedulerRunning;
- if (xSchedulerRunning.31_7 != 0)
- goto <bb 14>; [INV]
- else
- goto <bb 15>; [INV]
- <bb 14> :
- vPortEnterCritical ();
- prvResetNextTaskUnblockTime ();
- vPortExitCritical ();
- <bb 15> :
- pxCurrentTCB.32_8 ={v} pxCurrentTCB;
- if (pxTCB_26 == pxCurrentTCB.32_8)
- goto <bb 16>; [INV]
- else
- goto <bb 25>; [INV]
- <bb 16> :
- xSchedulerRunning.33_9 ={v} xSchedulerRunning;
- if (xSchedulerRunning.33_9 != 0)
- goto <bb 17>; [INV]
- else
- goto <bb 22>; [INV]
- <bb 17> :
- uxSchedulerSuspended.34_10 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.34_10 != 0)
- goto <bb 18>; [INV]
- else
- goto <bb 21>; [INV]
- <bb 18> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_42 : "i" 16 : "memory");
- <bb 19> :
- <bb 20> :
- goto <bb 20>; [INV]
- <bb 21> :
- _11 = 3758157060B;
- *_11 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- goto <bb 25>; [INV]
- <bb 22> :
- _12 ={v} xSuspendedTaskList.uxNumberOfItems;
- uxCurrentNumberOfTasks.35_13 ={v} uxCurrentNumberOfTasks;
- if (_12 == uxCurrentNumberOfTasks.35_13)
- goto <bb 23>; [INV]
- else
- goto <bb 24>; [INV]
- <bb 23> :
- pxCurrentTCB ={v} 0B;
- goto <bb 25>; [INV]
- <bb 24> :
- vTaskSwitchContext ();
- <bb 25> :
- return;
- }
- vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority)
- {
- uint32_t ulNewBASEPRI;
- struct ListItem_t * const pxIndex;
- BaseType_t xYieldRequired;
- UBaseType_t uxPriorityUsedOnEntry;
- UBaseType_t uxCurrentBasePriority;
- struct TCB_t * pxTCB;
- struct TCB_t * iftmp.25;
- struct TCB_t * pxCurrentTCB.26_1;
- struct TCB_t * pxCurrentTCB.27_2;
- long unsigned int _3;
- struct TCB_t * pxCurrentTCB.28_4;
- long unsigned int _5;
- long unsigned int _6;
- long unsigned int _7;
- signed int _8;
- long unsigned int _9;
- struct xLIST * _10;
- struct List_t * _11;
- struct ListItem_t * _12;
- long unsigned int _13;
- long unsigned int _14;
- long unsigned int uxTopReadyPriority.29_15;
- long unsigned int _16;
- long unsigned int _17;
- struct xLIST_ITEM * _18;
- struct xLIST_ITEM * _19;
- struct ListItem_t * _20;
- struct ListItem_t * _21;
- long unsigned int _22;
- struct List_t * _23;
- long unsigned int _24;
- long unsigned int _25;
- long unsigned int _26;
- volatile uint32_t * _27;
- struct TCB_t * iftmp.25_30;
- struct TCB_t * iftmp.25_42;
- struct TCB_t * iftmp.25_43;
- <bb 2> :
- xYieldRequired_36 = 0;
- if (uxNewPriority_37(D) > 4)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (uxNewPriority_37(D) > 4)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- uxNewPriority_38 = 4;
- <bb 8> :
- # uxNewPriority_28 = PHI <uxNewPriority_37(D)(6), uxNewPriority_38(7)>
- vPortEnterCritical ();
- if (xTask_41(D) == 0B)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- iftmp.25_43 ={v} pxCurrentTCB;
- goto <bb 11>; [INV]
- <bb 10> :
- iftmp.25_42 = xTask_41(D);
- <bb 11> :
- # iftmp.25_30 = PHI <iftmp.25_43(9), iftmp.25_42(10)>
- pxTCB_44 = iftmp.25_30;
- uxCurrentBasePriority_45 = pxTCB_44->uxBasePriority;
- if (uxCurrentBasePriority_45 != uxNewPriority_28)
- goto <bb 12>; [INV]
- else
- goto <bb 29>; [INV]
- <bb 12> :
- if (uxNewPriority_28 > uxCurrentBasePriority_45)
- goto <bb 13>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 13> :
- pxCurrentTCB.26_1 ={v} pxCurrentTCB;
- if (pxTCB_44 != pxCurrentTCB.26_1)
- goto <bb 14>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 14> :
- pxCurrentTCB.27_2 ={v} pxCurrentTCB;
- _3 = pxCurrentTCB.27_2->uxPriority;
- if (uxNewPriority_28 >= _3)
- goto <bb 15>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 15> :
- xYieldRequired_47 = 1;
- goto <bb 18>; [INV]
- <bb 16> :
- pxCurrentTCB.28_4 ={v} pxCurrentTCB;
- if (pxTCB_44 == pxCurrentTCB.28_4)
- goto <bb 17>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 17> :
- xYieldRequired_46 = 1;
- <bb 18> :
- # xYieldRequired_29 = PHI <xYieldRequired_47(15), xYieldRequired_36(16), xYieldRequired_46(17), xYieldRequired_36(13), xYieldRequired_36(14)>
- uxPriorityUsedOnEntry_48 = pxTCB_44->uxPriority;
- _5 = pxTCB_44->uxBasePriority;
- _6 = pxTCB_44->uxPriority;
- if (_5 == _6)
- goto <bb 19>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 19> :
- pxTCB_44->uxPriority = uxNewPriority_28;
- <bb 20> :
- pxTCB_44->uxBasePriority = uxNewPriority_28;
- _7 = pxTCB_44->xEventListItem.xItemValue;
- _8 = (signed int) _7;
- if (_8 >= 0)
- goto <bb 21>; [INV]
- else
- goto <bb 22>; [INV]
- <bb 21> :
- _9 = 5 - uxNewPriority_28;
- pxTCB_44->xEventListItem.xItemValue = _9;
- <bb 22> :
- _10 = pxTCB_44->xStateListItem.pvContainer;
- _11 = &pxReadyTasksLists[uxPriorityUsedOnEntry_48];
- if (_10 == _11)
- goto <bb 23>; [INV]
- else
- goto <bb 27>; [INV]
- <bb 23> :
- _12 = &pxTCB_44->xStateListItem;
- _13 = uxListRemove (_12);
- <bb 24> :
- _14 = pxTCB_44->uxPriority;
- uxTopReadyPriority.29_15 ={v} uxTopReadyPriority;
- if (_14 > uxTopReadyPriority.29_15)
- goto <bb 25>; [INV]
- else
- goto <bb 26>; [INV]
- <bb 25> :
- _16 = pxTCB_44->uxPriority;
- uxTopReadyPriority ={v} _16;
- <bb 26> :
- _17 = pxTCB_44->uxPriority;
- pxIndex_54 = pxReadyTasksLists[_17].pxIndex;
- pxTCB_44->xStateListItem.pxNext = pxIndex_54;
- _18 = pxIndex_54->pxPrevious;
- pxTCB_44->xStateListItem.pxPrevious = _18;
- _19 = pxIndex_54->pxPrevious;
- _20 = &pxTCB_44->xStateListItem;
- _19->pxNext = _20;
- _21 = &pxTCB_44->xStateListItem;
- pxIndex_54->pxPrevious = _21;
- _22 = pxTCB_44->uxPriority;
- _23 = &pxReadyTasksLists[_22];
- pxTCB_44->xStateListItem.pvContainer = _23;
- _24 = pxTCB_44->uxPriority;
- _25 ={v} pxReadyTasksLists[_24].uxNumberOfItems;
- _26 = _25 + 1;
- pxReadyTasksLists[_24].uxNumberOfItems ={v} _26;
- <bb 27> :
- if (xYieldRequired_29 != 0)
- goto <bb 28>; [INV]
- else
- goto <bb 29>; [INV]
- <bb 28> :
- _27 = 3758157060B;
- *_27 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 29> :
- vPortExitCritical ();
- return;
- }
- uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask)
- {
- uint32_t ulNewMaskValue;
- uint32_t D.8314;
- uint32_t ulOriginalBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t D.8313;
- UBaseType_t uxSavedInterruptState;
- UBaseType_t uxReturn;
- const struct TCB_t * pxTCB;
- UBaseType_t D.7633;
- const struct TCB_t * iftmp.24;
- const struct TCB_t * iftmp.24_1;
- const struct TCB_t * iftmp.24_6;
- const struct TCB_t * iftmp.24_7;
- UBaseType_t _10;
- long unsigned int _13;
- <bb 2> :
- vPortValidateInterruptPriority ();
- __asm__ __volatile__(" mrs %0, basepri
- mov %1, %2
- msr basepri, %1
- isb
- dsb
- " : "=r" ulOriginalBASEPRI_11, "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
- _13 = ulOriginalBASEPRI_11;
- <bb 3> :
- <L4>:
- _16 = _13;
- <bb 4> :
- uxSavedInterruptState_4 = _16;
- if (xTask_5(D) == 0B)
- goto <bb 5>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 5> :
- iftmp.24_7 ={v} pxCurrentTCB;
- goto <bb 7>; [INV]
- <bb 6> :
- iftmp.24_6 = xTask_5(D);
- <bb 7> :
- # iftmp.24_1 = PHI <iftmp.24_7(5), iftmp.24_6(6)>
- pxTCB_8 = iftmp.24_1;
- uxReturn_9 = pxTCB_8->uxPriority;
- ulNewMaskValue_14 = uxSavedInterruptState_4;
- __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_14 : "memory");
- <bb 8> :
- _10 = uxReturn_9;
- <bb 9> :
- <L3>:
- return _10;
- }
- uxTaskPriorityGet (struct tskTaskControlBlock * const xTask)
- {
- UBaseType_t uxReturn;
- const struct TCB_t * pxTCB;
- UBaseType_t D.7627;
- const struct TCB_t * iftmp.23;
- const struct TCB_t * iftmp.23_1;
- const struct TCB_t * iftmp.23_5;
- const struct TCB_t * iftmp.23_6;
- UBaseType_t _10;
- <bb 2> :
- vPortEnterCritical ();
- if (xTask_4(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.23_6 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.23_5 = xTask_4(D);
- <bb 5> :
- # iftmp.23_1 = PHI <iftmp.23_6(3), iftmp.23_5(4)>
- pxTCB_7 = iftmp.23_1;
- uxReturn_8 = pxTCB_7->uxPriority;
- vPortExitCritical ();
- _10 = uxReturn_8;
- <bb 6> :
- <L3>:
- return _10;
- }
- eTaskGetState (struct tskTaskControlBlock * xTask)
- {
- uint32_t ulNewBASEPRI;
- BaseType_t x;
- const struct TCB_t * const pxTCB;
- const struct List_t * pxOverflowedDelayedList;
- const struct List_t * pxDelayedList;
- const struct List_t * pxStateList;
- eTaskState eReturn;
- eTaskState D.7621;
- struct TCB_t * pxCurrentTCB.22_1;
- struct xLIST * _2;
- unsigned char _3;
- eTaskState _25;
- <bb 2> :
- pxTCB_9 = xTask_8(D);
- if (pxTCB_9 == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- pxCurrentTCB.22_1 ={v} pxCurrentTCB;
- if (pxTCB_9 == pxCurrentTCB.22_1)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- eReturn_24 = 0;
- goto <bb 24>; [INV]
- <bb 8> :
- vPortEnterCritical ();
- pxStateList_12 = pxTCB_9->xStateListItem.pvContainer;
- pxDelayedList_13 ={v} pxDelayedTaskList;
- pxOverflowedDelayedList_14 ={v} pxOverflowDelayedTaskList;
- vPortExitCritical ();
- if (pxStateList_12 == pxDelayedList_13)
- goto <bb 10>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 9> :
- if (pxStateList_12 == pxOverflowedDelayedList_14)
- goto <bb 10>; [INV]
- else
- goto <bb 11>; [INV]
- <bb 10> :
- eReturn_23 = 2;
- goto <bb 24>; [INV]
- <bb 11> :
- if (pxStateList_12 == &xSuspendedTaskList)
- goto <bb 12>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 12> :
- _2 = pxTCB_9->xEventListItem.pvContainer;
- if (_2 == 0B)
- goto <bb 13>; [INV]
- else
- goto <bb 19>; [INV]
- <bb 13> :
- eReturn_19 = 3;
- x_20 = 0;
- goto <bb 17>; [INV]
- <bb 14> :
- _3 ={v} pxTCB_9->ucNotifyState[x_6];
- if (_3 == 1)
- goto <bb 15>; [INV]
- else
- goto <bb 16>; [INV]
- <bb 15> :
- eReturn_22 = 2;
- goto <bb 18>; [INV]
- <bb 16> :
- x_21 = x_6 + 1;
- <bb 17> :
- # x_6 = PHI <x_20(13), x_21(16)>
- if (x_6 <= 0)
- goto <bb 14>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 18> :
- # eReturn_4 = PHI <eReturn_22(15), eReturn_19(17)>
- goto <bb 24>; [INV]
- <bb 19> :
- eReturn_18 = 2;
- goto <bb 24>; [INV]
- <bb 20> :
- if (pxStateList_12 == &xTasksWaitingTermination)
- goto <bb 22>; [INV]
- else
- goto <bb 21>; [INV]
- <bb 21> :
- if (pxStateList_12 == 0B)
- goto <bb 22>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 22> :
- eReturn_17 = 4;
- goto <bb 24>; [INV]
- <bb 23> :
- eReturn_16 = 1;
- <bb 24> :
- # eReturn_5 = PHI <eReturn_24(7), eReturn_23(10), eReturn_18(19), eReturn_17(22), eReturn_16(23), eReturn_4(18)>
- _25 = eReturn_5;
- <bb 25> :
- <L25>:
- return _25;
- }
- vTaskDelay (const TickType_t xTicksToDelay)
- {
- uint32_t ulNewBASEPRI;
- BaseType_t xAlreadyYielded;
- long unsigned int uxSchedulerSuspended.21_1;
- volatile uint32_t * _2;
- <bb 2> :
- xAlreadyYielded_6 = 0;
- if (xTicksToDelay_7(D) != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 3> :
- uxSchedulerSuspended.21_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.21_1 != 0)
- goto <bb 4>; [INV]
- else
- goto <bb 7>; [INV]
- <bb 4> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_16 : "i" 16 : "memory");
- <bb 5> :
- <bb 6> :
- goto <bb 6>; [INV]
- <bb 7> :
- vTaskSuspendAll ();
- prvAddCurrentTaskToDelayedList (xTicksToDelay_7(D), 0);
- xAlreadyYielded_12 = xTaskResumeAll ();
- <bb 8> :
- # xAlreadyYielded_3 = PHI <xAlreadyYielded_6(2), xAlreadyYielded_12(7)>
- if (xAlreadyYielded_3 == 0)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- _2 = 3758157060B;
- *_2 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 10> :
- return;
- }
- xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- const TickType_t xConstTickCount;
- BaseType_t xShouldDelay;
- BaseType_t xAlreadyYielded;
- TickType_t xTimeToWake;
- BaseType_t D.7590;
- long unsigned int uxSchedulerSuspended.20_1;
- long unsigned int _2;
- long unsigned int _3;
- long unsigned int _4;
- long unsigned int _5;
- long unsigned int _6;
- volatile uint32_t * _7;
- BaseType_t _27;
- <bb 2> :
- xShouldDelay_11 = 0;
- if (pxPreviousWakeTime_12(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- if (xTimeIncrement_13(D) == 0)
- goto <bb 7>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 7> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
- <bb 8> :
- <bb 9> :
- goto <bb 9>; [INV]
- <bb 10> :
- uxSchedulerSuspended.20_1 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.20_1 != 0)
- goto <bb 11>; [INV]
- else
- goto <bb 14>; [INV]
- <bb 11> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
- <bb 12> :
- <bb 13> :
- goto <bb 13>; [INV]
- <bb 14> :
- vTaskSuspendAll ();
- xConstTickCount_16 ={v} xTickCount;
- _2 = *pxPreviousWakeTime_12(D);
- xTimeToWake_17 = xTimeIncrement_13(D) + _2;
- _3 = *pxPreviousWakeTime_12(D);
- if (xConstTickCount_16 < _3)
- goto <bb 15>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 15> :
- _4 = *pxPreviousWakeTime_12(D);
- if (xTimeToWake_17 < _4)
- goto <bb 16>; [INV]
- else
- goto <bb 21>; [INV]
- <bb 16> :
- if (xTimeToWake_17 > xConstTickCount_16)
- goto <bb 17>; [INV]
- else
- goto <bb 21>; [INV]
- <bb 17> :
- xShouldDelay_19 = 1;
- goto <bb 21>; [INV]
- <bb 18> :
- _5 = *pxPreviousWakeTime_12(D);
- if (xTimeToWake_17 < _5)
- goto <bb 20>; [INV]
- else
- goto <bb 19>; [INV]
- <bb 19> :
- if (xTimeToWake_17 > xConstTickCount_16)
- goto <bb 20>; [INV]
- else
- goto <bb 21>; [INV]
- <bb 20> :
- xShouldDelay_18 = 1;
- <bb 21> :
- # xShouldDelay_8 = PHI <xShouldDelay_11(16), xShouldDelay_11(19), xShouldDelay_18(20), xShouldDelay_11(15), xShouldDelay_19(17)>
- *pxPreviousWakeTime_12(D) = xTimeToWake_17;
- if (xShouldDelay_8 != 0)
- goto <bb 22>; [INV]
- else
- goto <bb 23>; [INV]
- <bb 22> :
- _6 = xTimeToWake_17 - xConstTickCount_16;
- prvAddCurrentTaskToDelayedList (_6, 0);
- <bb 23> :
- xAlreadyYielded_23 = xTaskResumeAll ();
- if (xAlreadyYielded_23 == 0)
- goto <bb 24>; [INV]
- else
- goto <bb 25>; [INV]
- <bb 24> :
- _7 = 3758157060B;
- *_7 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 25> :
- _27 = xShouldDelay_8;
- <bb 26> :
- <L26>:
- return _27;
- }
- vTaskDelete (struct tskTaskControlBlock * xTaskToDelete)
- {
- uint32_t ulNewBASEPRI;
- struct TCB_t * pxTCB;
- struct TCB_t * iftmp.12;
- struct ListItem_t * _1;
- long unsigned int _2;
- struct xLIST * _3;
- struct ListItem_t * _4;
- long unsigned int uxTaskNumber.13_5;
- long unsigned int _6;
- struct TCB_t * pxCurrentTCB.14_7;
- struct ListItem_t * _8;
- long unsigned int uxDeletedTasksWaitingCleanUp.15_9;
- long unsigned int _10;
- long unsigned int uxCurrentNumberOfTasks.16_11;
- long unsigned int _12;
- long int xSchedulerRunning.17_13;
- struct TCB_t * pxCurrentTCB.18_14;
- long unsigned int uxSchedulerSuspended.19_15;
- volatile uint32_t * _16;
- struct TCB_t * iftmp.12_17;
- struct TCB_t * iftmp.12_24;
- struct TCB_t * iftmp.12_25;
- <bb 2> :
- vPortEnterCritical ();
- if (xTaskToDelete_23(D) == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 4>; [INV]
- <bb 3> :
- iftmp.12_25 ={v} pxCurrentTCB;
- goto <bb 5>; [INV]
- <bb 4> :
- iftmp.12_24 = xTaskToDelete_23(D);
- <bb 5> :
- # iftmp.12_17 = PHI <iftmp.12_25(3), iftmp.12_24(4)>
- pxTCB_26 = iftmp.12_17;
- _1 = &pxTCB_26->xStateListItem;
- _2 = uxListRemove (_1);
- <bb 6> :
- _3 = pxTCB_26->xEventListItem.pvContainer;
- if (_3 != 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- _4 = &pxTCB_26->xEventListItem;
- uxListRemove (_4);
- <bb 8> :
- uxTaskNumber.13_5 = uxTaskNumber;
- _6 = uxTaskNumber.13_5 + 1;
- uxTaskNumber = _6;
- pxCurrentTCB.14_7 ={v} pxCurrentTCB;
- if (pxTCB_26 == pxCurrentTCB.14_7)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- _8 = &pxTCB_26->xStateListItem;
- vListInsertEnd (&xTasksWaitingTermination, _8);
- uxDeletedTasksWaitingCleanUp.15_9 ={v} uxDeletedTasksWaitingCleanUp;
- _10 = uxDeletedTasksWaitingCleanUp.15_9 + 1;
- uxDeletedTasksWaitingCleanUp ={v} _10;
- goto <bb 11>; [INV]
- <bb 10> :
- uxCurrentNumberOfTasks.16_11 ={v} uxCurrentNumberOfTasks;
- _12 = uxCurrentNumberOfTasks.16_11 + 4294967295;
- uxCurrentNumberOfTasks ={v} _12;
- prvDeleteTCB (pxTCB_26);
- prvResetNextTaskUnblockTime ();
- <bb 11> :
- vPortExitCritical ();
- xSchedulerRunning.17_13 ={v} xSchedulerRunning;
- if (xSchedulerRunning.17_13 != 0)
- goto <bb 12>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 12> :
- pxCurrentTCB.18_14 ={v} pxCurrentTCB;
- if (pxTCB_26 == pxCurrentTCB.18_14)
- goto <bb 13>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 13> :
- uxSchedulerSuspended.19_15 ={v} uxSchedulerSuspended;
- if (uxSchedulerSuspended.19_15 != 0)
- goto <bb 14>; [INV]
- else
- goto <bb 17>; [INV]
- <bb 14> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_39 : "i" 16 : "memory");
- <bb 15> :
- <bb 16> :
- goto <bb 16>; [INV]
- <bb 17> :
- _16 = 3758157060B;
- *_16 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 18> :
- return;
- }
- prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB)
- {
- struct ListItem_t * const pxIndex;
- long unsigned int uxCurrentNumberOfTasks.2_1;
- long unsigned int _2;
- struct TCB_t * pxCurrentTCB.3_3;
- long unsigned int uxCurrentNumberOfTasks.4_4;
- long int xSchedulerRunning.5_5;
- struct TCB_t * pxCurrentTCB.6_6;
- long unsigned int _7;
- long unsigned int _8;
- long unsigned int uxTaskNumber.7_9;
- long unsigned int _10;
- long unsigned int uxTaskNumber.8_11;
- long unsigned int _12;
- long unsigned int uxTopReadyPriority.9_13;
- long unsigned int _14;
- long unsigned int _15;
- struct xLIST_ITEM * _16;
- struct xLIST_ITEM * _17;
- struct ListItem_t * _18;
- struct ListItem_t * _19;
- long unsigned int _20;
- struct List_t * _21;
- long unsigned int _22;
- long unsigned int _23;
- long unsigned int _24;
- long int xSchedulerRunning.10_25;
- struct TCB_t * pxCurrentTCB.11_26;
- long unsigned int _27;
- long unsigned int _28;
- volatile uint32_t * _29;
- <bb 2> :
- vPortEnterCritical ();
- uxCurrentNumberOfTasks.2_1 ={v} uxCurrentNumberOfTasks;
- _2 = uxCurrentNumberOfTasks.2_1 + 1;
- uxCurrentNumberOfTasks ={v} _2;
- pxCurrentTCB.3_3 ={v} pxCurrentTCB;
- if (pxCurrentTCB.3_3 == 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 3> :
- pxCurrentTCB ={v} pxNewTCB_36(D);
- uxCurrentNumberOfTasks.4_4 ={v} uxCurrentNumberOfTasks;
- if (uxCurrentNumberOfTasks.4_4 == 1)
- goto <bb 4>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 4> :
- prvInitialiseTaskLists ();
- goto <bb 8>; [INV]
- <bb 5> :
- xSchedulerRunning.5_5 ={v} xSchedulerRunning;
- if (xSchedulerRunning.5_5 == 0)
- goto <bb 6>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 6> :
- pxCurrentTCB.6_6 ={v} pxCurrentTCB;
- _7 = pxCurrentTCB.6_6->uxPriority;
- _8 = pxNewTCB_36(D)->uxPriority;
- if (_7 <= _8)
- goto <bb 7>; [INV]
- else
- goto <bb 8>; [INV]
- <bb 7> :
- pxCurrentTCB ={v} pxNewTCB_36(D);
- <bb 8> :
- uxTaskNumber.7_9 = uxTaskNumber;
- _10 = uxTaskNumber.7_9 + 1;
- uxTaskNumber = _10;
- uxTaskNumber.8_11 = uxTaskNumber;
- pxNewTCB_36(D)->uxTCBNumber = uxTaskNumber.8_11;
- _12 = pxNewTCB_36(D)->uxPriority;
- uxTopReadyPriority.9_13 ={v} uxTopReadyPriority;
- if (_12 > uxTopReadyPriority.9_13)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- _14 = pxNewTCB_36(D)->uxPriority;
- uxTopReadyPriority ={v} _14;
- <bb 10> :
- _15 = pxNewTCB_36(D)->uxPriority;
- pxIndex_43 = pxReadyTasksLists[_15].pxIndex;
- pxNewTCB_36(D)->xStateListItem.pxNext = pxIndex_43;
- _16 = pxIndex_43->pxPrevious;
- pxNewTCB_36(D)->xStateListItem.pxPrevious = _16;
- _17 = pxIndex_43->pxPrevious;
- _18 = &pxNewTCB_36(D)->xStateListItem;
- _17->pxNext = _18;
- _19 = &pxNewTCB_36(D)->xStateListItem;
- pxIndex_43->pxPrevious = _19;
- _20 = pxNewTCB_36(D)->uxPriority;
- _21 = &pxReadyTasksLists[_20];
- pxNewTCB_36(D)->xStateListItem.pvContainer = _21;
- _22 = pxNewTCB_36(D)->uxPriority;
- _23 ={v} pxReadyTasksLists[_22].uxNumberOfItems;
- _24 = _23 + 1;
- pxReadyTasksLists[_22].uxNumberOfItems ={v} _24;
- vPortExitCritical ();
- xSchedulerRunning.10_25 ={v} xSchedulerRunning;
- if (xSchedulerRunning.10_25 != 0)
- goto <bb 11>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 11> :
- pxCurrentTCB.11_26 ={v} pxCurrentTCB;
- _27 = pxCurrentTCB.11_26->uxPriority;
- _28 = pxNewTCB_36(D)->uxPriority;
- if (_27 < _28)
- goto <bb 12>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 12> :
- _29 = 3758157060B;
- *_29 ={v} 268435456;
- __asm__ __volatile__("dsb" : : : "memory");
- __asm__ __volatile__("isb");
- <bb 13> :
- return;
- }
- prvInitialiseNewTask (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, const struct MemoryRegion_t * const xRegions)
- {
- uint32_t ulNewBASEPRI;
- uint32_t ulNewBASEPRI;
- UBaseType_t x;
- StackType_t * pxTopOfStack;
- StackType_t * _1;
- unsigned int _2;
- StackType_t * _3;
- sizetype _4;
- sizetype _5;
- long unsigned int pxTopOfStack.0_6;
- long unsigned int _7;
- long unsigned int pxTopOfStack.1_8;
- long unsigned int _9;
- const char * _10;
- char _11;
- const char * _12;
- char _13;
- struct ListItem_t * _14;
- struct ListItem_t * _15;
- long unsigned int _16;
- volatile uint32_t * _17;
- volatile uint8_t * _18;
- StackType_t * _19;
- <bb 2> :
- _1 = pxNewTCB_27(D)->pxStack;
- _2 = ulStackDepth_28(D) * 4;
- memset (_1, 165, _2);
- _3 = pxNewTCB_27(D)->pxStack;
- _4 = ulStackDepth_28(D) + 1073741823;
- _5 = _4 * 4;
- pxTopOfStack_30 = _3 + _5;
- pxTopOfStack.0_6 = (long unsigned int) pxTopOfStack_30;
- _7 = pxTopOfStack.0_6 & 4294967288;
- pxTopOfStack_31 = (StackType_t *) _7;
- pxTopOfStack.1_8 = (long unsigned int) pxTopOfStack_31;
- _9 = pxTopOfStack.1_8 & 7;
- if (_9 != 0)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_58 : "i" 16 : "memory");
- <bb 4> :
- <bb 5> :
- goto <bb 5>; [INV]
- <bb 6> :
- pxNewTCB_27(D)->pxEndOfStack = pxTopOfStack_31;
- if (pcName_33(D) != 0B)
- goto <bb 7>; [INV]
- else
- goto <bb 13>; [INV]
- <bb 7> :
- x_35 = 0;
- goto <bb 11>; [INV]
- <bb 8> :
- _10 = pcName_33(D) + x_21;
- _11 = *_10;
- pxNewTCB_27(D)->pcTaskName[x_21] = _11;
- _12 = pcName_33(D) + x_21;
- _13 = *_12;
- if (_13 == 0)
- goto <bb 9>; [INV]
- else
- goto <bb 10>; [INV]
- <bb 9> :
- goto <bb 12>; [INV]
- <bb 10> :
- x_37 = x_21 + 1;
- <bb 11> :
- # x_21 = PHI <x_35(7), x_37(10)>
- if (x_21 <= 9)
- goto <bb 8>; [INV]
- else
- goto <bb 12>; [INV]
- <bb 12> :
- pxNewTCB_27(D)->pcTaskName[9] = 0;
- goto <bb 14>; [INV]
- <bb 13> :
- pxNewTCB_27(D)->pcTaskName[0] = 0;
- <bb 14> :
- if (uxPriority_39(D) > 4)
- goto <bb 15>; [INV]
- else
- goto <bb 18>; [INV]
- <bb 15> :
- __asm__ __volatile__(" mov %0, %1
- msr basepri, %0
- isb
- dsb
- " : "=r" ulNewBASEPRI_59 : "i" 16 : "memory");
- <bb 16> :
- <bb 17> :
- goto <bb 17>; [INV]
- <bb 18> :
- if (uxPriority_39(D) > 4)
- goto <bb 19>; [INV]
- else
- goto <bb 20>; [INV]
- <bb 19> :
- uxPriority_40 = 4;
- <bb 20> :
- # uxPriority_20 = PHI <uxPriority_39(D)(18), uxPriority_40(19)>
- pxNewTCB_27(D)->uxPriority = uxPriority_20;
- pxNewTCB_27(D)->uxBasePriority = uxPriority_20;
- pxNewTCB_27(D)->uxMutexesHeld = 0;
- _14 = &pxNewTCB_27(D)->xStateListItem;
- vListInitialiseItem (_14);
- _15 = &pxNewTCB_27(D)->xEventListItem;
- vListInitialiseItem (_15);
- pxNewTCB_27(D)->xStateListItem.pvOwner = pxNewTCB_27(D);
- _16 = 5 - uxPriority_20;
- pxNewTCB_27(D)->xEventListItem.xItemValue = _16;
- pxNewTCB_27(D)->xEventListItem.pvOwner = pxNewTCB_27(D);
- _17 = &pxNewTCB_27(D)->ulNotifiedValue[0];
- memset (_17, 0, 4);
- _18 = &pxNewTCB_27(D)->ucNotifyState[0];
- memset (_18, 0, 1);
- pxNewTCB_27(D)->ucDelayAborted = 0;
- _19 = pxPortInitialiseStack (pxTopOfStack_31, pxTaskCode_52(D), pvParameters_53(D));
- pxNewTCB_27(D)->pxTopOfStack = _19;
- if (pxCreatedTask_56(D) != 0B)
- goto <bb 21>; [INV]
- else
- goto <bb 22>; [INV]
- <bb 21> :
- *pxCreatedTask_56(D) = pxNewTCB_27(D);
- <bb 22> :
- return;
- }
- xTaskCreate (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask)
- {
- StackType_t * pxStack;
- BaseType_t xReturn;
- struct TCB_t * pxNewTCB;
- BaseType_t D.7510;
- unsigned int _1;
- unsigned int _2;
- long unsigned int _3;
- BaseType_t _26;
- <bb 2> :
- _1 = (unsigned int) usStackDepth_8(D);
- _2 = _1 * 4;
- pxStack_11 = pvPortMalloc (_2);
- if (pxStack_11 != 0B)
- goto <bb 3>; [INV]
- else
- goto <bb 6>; [INV]
- <bb 3> :
- pxNewTCB_14 = pvPortMalloc (92);
- if (pxNewTCB_14 != 0B)
- goto <bb 4>; [INV]
- else
- goto <bb 5>; [INV]
- <bb 4> :
- pxNewTCB_14->pxStack = pxStack_11;
- goto <bb 7>; [INV]
- <bb 5> :
- vPortFree (pxStack_11);
- goto <bb 7>; [INV]
- <bb 6> :
- pxNewTCB_12 = 0B;
- <bb 7> :
- # pxNewTCB_4 = PHI <pxNewTCB_14(5), pxNewTCB_12(6), pxNewTCB_14(4)>
- if (pxNewTCB_4 != 0B)
- goto <bb 8>; [INV]
- else
- goto <bb 9>; [INV]
- <bb 8> :
- _3 = (long unsigned int) usStackDepth_8(D);
- prvInitialiseNewTask (pxTaskCode_18(D), pcName_19(D), _3, pvParameters_20(D), uxPriority_21(D), pxCreatedTask_22(D), pxNewTCB_4, 0B);
- prvAddNewTaskToReadyList (pxNewTCB_4);
- xReturn_25 = 1;
- goto <bb 10>; [INV]
- <bb 9> :
- xReturn_17 = -1;
- <bb 10> :
- # xReturn_5 = PHI <xReturn_25(8), xReturn_17(9)>
- _26 = xReturn_5;
- <bb 11> :
- <L9>:
- return _26;
- }
|