tasks.c.064i.free-fnsummary1 190 KB

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