tasks.c.069i.profile_estimate 190 KB

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