tasks.c.080i.single-use 191 KB

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