tasks.c.068i.whole-program 262 KB

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