queue.c.048i.remove_symbols 135 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683
  1. Reclaiming functions:
  2. Reclaiming variables:
  3. Clearing address taken flags:
  4. Symbol table:
  5. vQueueUnregisterQueue.part.0/114 (vQueueUnregisterQueue.part.0) @05df8b60
  6. Type: function definition analyzed
  7. Visibility: artificial
  8. References:
  9. Referring:
  10. Availability: local
  11. Function flags: count:107374 (estimated locally) first_run:1 body local split_part optimize_size
  12. Called by: vQueueUnregisterQueue/40 (107374 (estimated locally),0.30 per call)
  13. Calls:
  14. xQueueGenericReset.part.0/65 (xQueueGenericReset.part.0) @05df82a0
  15. Type: function definition analyzed
  16. Visibility: artificial
  17. References:
  18. Referring:
  19. Availability: local
  20. Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  21. Called by: xQueueGenericReset/5 (21218 (estimated locally),0.12 per call)
  22. Calls: vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) xTaskRemoveFromEventList/43 (237404317 (estimated locally),0.22 per call) vListInitialise/44 (354334802 (estimated locally),0.33 per call) vListInitialise/44 (354334802 (estimated locally),0.33 per call) vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call)
  23. vTaskPlaceOnEventListRestricted/62 (vTaskPlaceOnEventListRestricted) @05f9a620
  24. Type: function
  25. Visibility: external public
  26. References:
  27. Referring:
  28. Availability: not_available
  29. Function flags: optimize_size
  30. Called by: vQueueWaitForMessageRestricted/41 (354334802 (estimated locally),0.33 per call)
  31. Calls:
  32. vPortFree/61 (vPortFree) @05f79ee0
  33. Type: function
  34. Visibility: external public
  35. References:
  36. Referring:
  37. Availability: not_available
  38. Function flags: optimize_size
  39. Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call)
  40. Calls:
  41. vTaskPriorityDisinheritAfterTimeout/60 (vTaskPriorityDisinheritAfterTimeout) @05f79380
  42. Type: function
  43. Visibility: external public
  44. References:
  45. Referring:
  46. Availability: not_available
  47. Function flags: optimize_size
  48. Called by: xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call)
  49. Calls:
  50. xTaskPriorityInherit/59 (xTaskPriorityInherit) @05f792a0
  51. Type: function
  52. Visibility: external public
  53. References:
  54. Referring:
  55. Availability: not_available
  56. Function flags: optimize_size
  57. Called by: xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call)
  58. Calls:
  59. pvTaskIncrementMutexHeldCount/58 (pvTaskIncrementMutexHeldCount) @05f791c0
  60. Type: function
  61. Visibility: external public
  62. References:
  63. Referring:
  64. Availability: not_available
  65. Function flags: optimize_size
  66. Called by: xQueueSemaphoreTake/19 (2848 (estimated locally),0.01 per call)
  67. Calls:
  68. vPortValidateInterruptPriority/57 (vPortValidateInterruptPriority) @05f53620
  69. Type: function
  70. Visibility: external public
  71. References:
  72. Referring:
  73. Availability: not_available
  74. Function flags: optimize_size
  75. Called by: xQueuePeekFromISR/22 (52886 (estimated locally),0.20 per call) xQueueReceiveFromISR/21 (192251 (estimated locally),0.54 per call) xQueueGiveFromISR/17 (72401 (estimated locally),0.24 per call) xQueueGenericSendFromISR/16 (141108 (estimated locally),0.39 per call)
  76. Calls:
  77. vTaskMissedYield/56 (vTaskMissedYield) @05f532a0
  78. Type: function
  79. Visibility: external public
  80. References:
  81. Referring:
  82. Availability: not_available
  83. Function flags: optimize_size
  84. Called by: prvUnlockQueue/33 (316429830 (estimated locally),2.75 per call) prvUnlockQueue/33 (316429836 (estimated locally),2.75 per call)
  85. Calls:
  86. memcpy/55 (memcpy) @05f53000
  87. Type: function
  88. Visibility: external public
  89. References:
  90. Referring:
  91. Availability: not_available
  92. Function flags: optimize_size
  93. Called by: prvCopyDataFromQueue/32 (536870913 (estimated locally),0.50 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call)
  94. Calls:
  95. xTaskPriorityDisinherit/54 (xTaskPriorityDisinherit) @05f058c0
  96. Type: function
  97. Visibility: external public
  98. References:
  99. Referring:
  100. Availability: not_available
  101. Function flags: optimize_size
  102. Called by: prvCopyDataToQueue/31 (93576600 (estimated locally),0.09 per call)
  103. Calls:
  104. xTaskResumeAll/53 (xTaskResumeAll) @05f05e00
  105. Type: function
  106. Visibility: external public
  107. References:
  108. Referring:
  109. Availability: not_available
  110. Function flags: optimize_size
  111. Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call)
  112. Calls:
  113. vTaskPlaceOnEventList/52 (vTaskPlaceOnEventList) @05f05d20
  114. Type: function
  115. Visibility: external public
  116. References:
  117. Referring:
  118. Availability: not_available
  119. Function flags: optimize_size
  120. Called by: xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call)
  121. Calls:
  122. xTaskCheckForTimeOut/51 (xTaskCheckForTimeOut) @05f05c40
  123. Type: function
  124. Visibility: external public
  125. References:
  126. Referring:
  127. Availability: not_available
  128. Function flags: optimize_size
  129. Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call)
  130. Calls:
  131. vTaskSuspendAll/50 (vTaskSuspendAll) @05f05b60
  132. Type: function
  133. Visibility: external public
  134. References:
  135. Referring:
  136. Availability: not_available
  137. Function flags: optimize_size
  138. Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call)
  139. Calls:
  140. vTaskInternalSetTimeOutState/49 (vTaskInternalSetTimeOutState) @05f05a80
  141. Type: function
  142. Visibility: external public
  143. References:
  144. Referring:
  145. Availability: not_available
  146. Function flags: optimize_size
  147. Called by: xQueuePeek/20 (497076 (estimated locally),1.39 per call) xQueueSemaphoreTake/19 (136739 (estimated locally),0.60 per call) xQueueReceive/18 (497076 (estimated locally),1.39 per call) xQueueGenericSend/15 (304339 (estimated locally),0.85 per call)
  148. Calls:
  149. xTaskGetSchedulerState/48 (xTaskGetSchedulerState) @05f059a0
  150. Type: function
  151. Visibility: external public
  152. References:
  153. Referring:
  154. Availability: not_available
  155. Function flags: optimize_size
  156. Called by: xQueuePeek/20 (192251 (estimated locally),0.54 per call) xQueueSemaphoreTake/19 (52886 (estimated locally),0.23 per call) xQueueReceive/18 (192251 (estimated locally),0.54 per call) xQueueGenericSend/15 (141108 (estimated locally),0.39 per call)
  157. Calls:
  158. xTaskGetCurrentTaskHandle/47 (xTaskGetCurrentTaskHandle) @05f05460
  159. Type: function
  160. Visibility: external public
  161. References:
  162. Referring:
  163. Availability: not_available
  164. Function flags: optimize_size
  165. Called by: xQueueTakeMutexRecursive/13 (123389 (estimated locally),0.53 per call) xQueueGiveMutexRecursive/12 (123389 (estimated locally),0.53 per call)
  166. Calls:
  167. pvPortMalloc/46 (pvPortMalloc) @05ef2000
  168. Type: function
  169. Visibility: external public
  170. References:
  171. Referring:
  172. Availability: not_available
  173. Function flags: optimize_size
  174. Called by: xQueueGenericCreate/6 (9655 (estimated locally),0.08 per call)
  175. Calls:
  176. vPortExitCritical/45 (vPortExitCritical) @05ef2d20
  177. Type: function
  178. Visibility: external public
  179. References:
  180. Referring:
  181. Availability: not_available
  182. Function flags: optimize_size
  183. Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (57225 (estimated locally),0.16 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (3186 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (16340 (estimated locally),0.07 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (57225 (estimated locally),0.16 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (26079 (estimated locally),0.07 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (1073741824 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863529 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (1073741824 (estimated locally),1.00 per call)
  184. Calls:
  185. vListInitialise/44 (vListInitialise) @05ef2c40
  186. Type: function
  187. Visibility: external public
  188. References:
  189. Referring:
  190. Availability: not_available
  191. Function flags: optimize_size
  192. Called by: xQueueGenericReset.part.0/65 (354334802 (estimated locally),0.33 per call) xQueueGenericReset.part.0/65 (354334802 (estimated locally),0.33 per call)
  193. Calls:
  194. xTaskRemoveFromEventList/43 (xTaskRemoveFromEventList) @05ef2b60
  195. Type: function
  196. Visibility: external public
  197. References:
  198. Referring:
  199. Availability: not_available
  200. Function flags: optimize_size
  201. Called by: xQueueReceiveFromISR/21 (7118 (estimated locally),0.02 per call) xQueuePeek/20 (19602 (estimated locally),0.05 per call) xQueueSemaphoreTake/19 (5392 (estimated locally),0.02 per call) xQueueReceive/18 (19602 (estimated locally),0.05 per call) xQueueGiveFromISR/17 (4062 (estimated locally),0.01 per call) xQueueGenericSendFromISR/16 (8831 (estimated locally),0.02 per call) xQueueGenericSend/15 (17949 (estimated locally),0.05 per call) xQueueGenericReset.part.0/65 (237404317 (estimated locally),0.22 per call) prvUnlockQueue/33 (958878272 (estimated locally),8.35 per call) prvUnlockQueue/33 (958878293 (estimated locally),8.35 per call)
  202. Calls:
  203. vPortEnterCritical/42 (vPortEnterCritical) @05ef2a80
  204. Type: function
  205. Visibility: external public
  206. References:
  207. Referring:
  208. Availability: not_available
  209. Function flags: optimize_size
  210. Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1622915 (estimated locally),4.53 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (446442 (estimated locally),1.95 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1622915 (estimated locally),4.53 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (1002708 (estimated locally),2.80 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (1073741824 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863534 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (1073741824 (estimated locally),1.00 per call)
  211. Calls:
  212. vQueueWaitForMessageRestricted/41 (vQueueWaitForMessageRestricted) @05ef2540
  213. Type: function definition analyzed
  214. Visibility: externally_visible public
  215. References:
  216. Referring:
  217. Availability: available
  218. Function flags: count:1073741824 (estimated locally) body optimize_size
  219. Called by:
  220. Calls: prvUnlockQueue/33 (1073741824 (estimated locally),1.00 per call) vTaskPlaceOnEventListRestricted/62 (354334802 (estimated locally),0.33 per call) vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call)
  221. vQueueUnregisterQueue/40 (vQueueUnregisterQueue) @05ef22a0
  222. Type: function definition analyzed
  223. Visibility: externally_visible public
  224. References: xQueueRegistry/4 (read)xQueueRegistry/4 (write)xQueueRegistry/4 (write)
  225. Referring:
  226. Availability: available
  227. Function flags: count:357913 (estimated locally) body optimize_size
  228. Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call)
  229. Calls: vQueueUnregisterQueue.part.0/114 (107374 (estimated locally),0.30 per call)
  230. pcQueueGetName/39 (pcQueueGetName) @05eece00
  231. Type: function definition analyzed
  232. Visibility: externally_visible public
  233. References: xQueueRegistry/4 (read)xQueueRegistry/4 (read)
  234. Referring:
  235. Availability: available
  236. Function flags: count:357913 (estimated locally) body optimize_size
  237. Called by:
  238. Calls:
  239. vQueueAddToRegistry/38 (vQueueAddToRegistry) @05eec460
  240. Type: function definition analyzed
  241. Visibility: externally_visible public
  242. References: xQueueRegistry/4 (read)xQueueRegistry/4 (addr)xQueueRegistry/4 (read)xQueueRegistry/4 (addr)
  243. Referring:
  244. Availability: available
  245. Function flags: count:357913 (estimated locally) body optimize_size
  246. Called by:
  247. Calls:
  248. xQueueIsQueueFullFromISR/37 (xQueueIsQueueFullFromISR) @05eecd20
  249. Type: function definition analyzed
  250. Visibility: externally_visible public
  251. References:
  252. Referring:
  253. Availability: available
  254. Function flags: count:357913 (estimated locally) body optimize_size
  255. Called by:
  256. Calls:
  257. prvIsQueueFull/36 (prvIsQueueFull) @05eec9a0
  258. Type: function definition analyzed
  259. Visibility: prevailing_def_ironly
  260. References:
  261. Referring:
  262. Availability: local
  263. Function flags: count:1073741824 (estimated locally) body local optimize_size
  264. Called by: xQueueGenericSend/15 (896877 (estimated locally),2.51 per call)
  265. Calls: vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call)
  266. xQueueIsQueueEmptyFromISR/35 (xQueueIsQueueEmptyFromISR) @05eec700
  267. Type: function definition analyzed
  268. Visibility: externally_visible public
  269. References:
  270. Referring:
  271. Availability: available
  272. Function flags: count:357913 (estimated locally) body optimize_size
  273. Called by:
  274. Calls:
  275. prvIsQueueEmpty/34 (prvIsQueueEmpty) @05eec380
  276. Type: function definition analyzed
  277. Visibility: prevailing_def_ironly
  278. References:
  279. Referring:
  280. Availability: local
  281. Function flags: count:1073741824 (estimated locally) body local optimize_size
  282. Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call)
  283. Calls: vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call)
  284. prvUnlockQueue/33 (prvUnlockQueue) @05eec0e0
  285. Type: function definition analyzed
  286. Visibility: prevailing_def_ironly
  287. References:
  288. Referring:
  289. Availability: local
  290. Function flags: count:114863534 (estimated locally) body local optimize_size
  291. Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call)
  292. Calls: vPortExitCritical/45 (114863529 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429830 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878272 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863532 (estimated locally),1.00 per call) vPortExitCritical/45 (114863532 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429836 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878293 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863534 (estimated locally),1.00 per call)
  293. prvCopyDataFromQueue/32 (prvCopyDataFromQueue) @05ee38c0
  294. Type: function definition analyzed
  295. Visibility: prevailing_def_ironly
  296. References:
  297. Referring:
  298. Availability: local
  299. Function flags: count:1073741824 (estimated locally) body local optimize_size
  300. Called by: xQueuePeekFromISR/22 (17452 (estimated locally),0.06 per call) xQueueReceiveFromISR/21 (63443 (estimated locally),0.18 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call)
  301. Calls: memcpy/55 (536870913 (estimated locally),0.50 per call)
  302. prvCopyDataToQueue/31 (prvCopyDataToQueue) @05ee3380
  303. Type: function definition analyzed
  304. Visibility: prevailing_def_ironly
  305. References:
  306. Referring:
  307. Availability: local
  308. Function flags: count:1073741823 (estimated locally) body local optimize_size
  309. Called by: xQueueGenericSendFromISR/16 (78710 (estimated locally),0.22 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call)
  310. Calls: memcpy/55 (268435456 (estimated locally),0.25 per call) memcpy/55 (268435456 (estimated locally),0.25 per call) xTaskPriorityDisinherit/54 (93576600 (estimated locally),0.09 per call)
  311. prvGetDisinheritPriorityAfterTimeout/30 (prvGetDisinheritPriorityAfterTimeout) @05ee3e00
  312. Type: function definition analyzed
  313. Visibility: prevailing_def_ironly
  314. References:
  315. Referring:
  316. Availability: local
  317. Function flags: count:1073741824 (estimated locally) body local optimize_size
  318. Called by: xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call)
  319. Calls:
  320. ucQueueGetQueueType/29 (ucQueueGetQueueType) @05ee3a80
  321. Type: function definition analyzed
  322. Visibility: externally_visible public
  323. References:
  324. Referring:
  325. Availability: available
  326. Function flags: count:1073741824 (estimated locally) body optimize_size
  327. Called by:
  328. Calls:
  329. vQueueSetQueueNumber/28 (vQueueSetQueueNumber) @05ee37e0
  330. Type: function definition analyzed
  331. Visibility: externally_visible public
  332. References:
  333. Referring:
  334. Availability: available
  335. Function flags: count:1073741824 (estimated locally) body optimize_size
  336. Called by:
  337. Calls:
  338. uxQueueGetQueueNumber/27 (uxQueueGetQueueNumber) @05ee3540
  339. Type: function definition analyzed
  340. Visibility: externally_visible public
  341. References:
  342. Referring:
  343. Availability: available
  344. Function flags: count:1073741824 (estimated locally) body optimize_size
  345. Called by:
  346. Calls:
  347. vQueueDelete/26 (vQueueDelete) @05ee32a0
  348. Type: function definition analyzed
  349. Visibility: externally_visible public
  350. References:
  351. Referring:
  352. Availability: available
  353. Function flags: count:230763 (estimated locally) body optimize_size
  354. Called by:
  355. Calls: vPortFree/61 (123389 (estimated locally),0.53 per call) vQueueUnregisterQueue/40 (123389 (estimated locally),0.53 per call)
  356. uxQueueMessagesWaitingFromISR/25 (uxQueueMessagesWaitingFromISR) @05edad20
  357. Type: function definition analyzed
  358. Visibility: externally_visible public
  359. References:
  360. Referring:
  361. Availability: available
  362. Function flags: count:357913 (estimated locally) body optimize_size
  363. Called by:
  364. Calls:
  365. uxQueueSpacesAvailable/24 (uxQueueSpacesAvailable) @05eda0e0
  366. Type: function definition analyzed
  367. Visibility: externally_visible public
  368. References:
  369. Referring:
  370. Availability: available
  371. Function flags: count:230763 (estimated locally) body optimize_size
  372. Called by:
  373. Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call)
  374. uxQueueMessagesWaiting/23 (uxQueueMessagesWaiting) @05edac40
  375. Type: function definition analyzed
  376. Visibility: externally_visible public
  377. References:
  378. Referring:
  379. Availability: available
  380. Function flags: count:230763 (estimated locally) body optimize_size
  381. Called by:
  382. Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call)
  383. xQueuePeekFromISR/22 (xQueuePeekFromISR) @05eda8c0
  384. Type: function definition analyzed
  385. Visibility: externally_visible public
  386. References:
  387. Referring:
  388. Availability: available
  389. Function flags: count:269344 (estimated locally) body optimize_size
  390. Called by:
  391. Calls: prvCopyDataFromQueue/32 (17452 (estimated locally),0.06 per call) vPortValidateInterruptPriority/57 (52886 (estimated locally),0.20 per call)
  392. xQueueReceiveFromISR/21 (xQueueReceiveFromISR) @05eda460
  393. Type: function definition analyzed
  394. Visibility: externally_visible public
  395. References:
  396. Referring:
  397. Availability: available
  398. Function flags: count:357913 (estimated locally) body optimize_size
  399. Called by:
  400. Calls: xTaskRemoveFromEventList/43 (7118 (estimated locally),0.02 per call) prvCopyDataFromQueue/32 (63443 (estimated locally),0.18 per call) vPortValidateInterruptPriority/57 (192251 (estimated locally),0.54 per call)
  401. xQueuePeek/20 (xQueuePeek) @05eda000
  402. Type: function definition analyzed
  403. Visibility: externally_visible public
  404. References:
  405. Referring:
  406. Availability: available
  407. Function flags: count:357913 (estimated locally) body optimize_size
  408. Called by:
  409. Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call)
  410. xQueueSemaphoreTake/19 (xQueueSemaphoreTake) @05ec8c40
  411. Type: function definition analyzed
  412. Visibility: externally_visible public
  413. References:
  414. Referring:
  415. Availability: available
  416. Function flags: count:228942 (estimated locally) body optimize_size
  417. Called by: xQueueTakeMutexRecursive/13 (65976 (estimated locally),0.29 per call)
  418. Calls: vPortExitCritical/45 (2502 (estimated locally),0.01 per call) vTaskPriorityDisinheritAfterTimeout/60 (2502 (estimated locally),0.01 per call) prvGetDisinheritPriorityAfterTimeout/30 (2502 (estimated locally),0.01 per call) vPortEnterCritical/42 (2502 (estimated locally),0.01 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (207180 (estimated locally),0.90 per call) prvUnlockQueue/33 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (68369 (estimated locally),0.30 per call) prvUnlockQueue/33 (68369 (estimated locally),0.30 per call) xTaskResumeAll/53 (138811 (estimated locally),0.61 per call) prvUnlockQueue/33 (138811 (estimated locally),0.61 per call) vTaskPlaceOnEventList/52 (138811 (estimated locally),0.61 per call) vPortExitCritical/45 (24195 (estimated locally),0.11 per call) xTaskPriorityInherit/59 (24195 (estimated locally),0.11 per call) vPortEnterCritical/42 (24195 (estimated locally),0.11 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskCheckForTimeOut/51 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vPortEnterCritical/42 (414360 (estimated locally),1.81 per call) vTaskSuspendAll/50 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vTaskInternalSetTimeOutState/49 (136739 (estimated locally),0.60 per call) vPortExitCritical/45 (3186 (estimated locally),0.01 per call) vPortExitCritical/45 (16340 (estimated locally),0.07 per call) xTaskRemoveFromEventList/43 (5392 (estimated locally),0.02 per call) pvTaskIncrementMutexHeldCount/58 (2848 (estimated locally),0.01 per call) vPortEnterCritical/42 (446442 (estimated locally),1.95 per call) xTaskGetSchedulerState/48 (52886 (estimated locally),0.23 per call)
  419. xQueueReceive/18 (xQueueReceive) @05ec8540
  420. Type: function definition analyzed
  421. Visibility: externally_visible public
  422. References:
  423. Referring:
  424. Availability: available
  425. Function flags: count:357913 (estimated locally) body optimize_size
  426. Called by:
  427. Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call)
  428. xQueueGiveFromISR/17 (xQueueGiveFromISR) @05e68d20
  429. Type: function definition analyzed
  430. Visibility: externally_visible public
  431. References:
  432. Referring:
  433. Availability: available
  434. Function flags: count:306783 (estimated locally) body optimize_size
  435. Called by:
  436. Calls: xTaskRemoveFromEventList/43 (4062 (estimated locally),0.01 per call) vPortValidateInterruptPriority/57 (72401 (estimated locally),0.24 per call)
  437. xQueueGenericSendFromISR/16 (xQueueGenericSendFromISR) @05e68c40
  438. Type: function definition analyzed
  439. Visibility: externally_visible public
  440. References:
  441. Referring:
  442. Availability: available
  443. Function flags: count:357913 (estimated locally) body optimize_size
  444. Called by:
  445. Calls: xTaskRemoveFromEventList/43 (8831 (estimated locally),0.02 per call) prvCopyDataToQueue/31 (78710 (estimated locally),0.22 per call) vPortValidateInterruptPriority/57 (141108 (estimated locally),0.39 per call)
  446. xQueueGenericSend/15 (xQueueGenericSend) @05e687e0
  447. Type: function definition analyzed
  448. Visibility: externally_visible public
  449. References:
  450. Referring:
  451. Availability: available
  452. Function flags: count:357913 (estimated locally) body optimize_size
  453. Called by: xQueueGiveMutexRecursive/12 (12216 (estimated locally),0.05 per call) prvInitialiseMutex/8 (574129754 (estimated locally),0.53 per call)
  454. Calls: xTaskResumeAll/53 (25362 (estimated locally),0.07 per call) prvUnlockQueue/33 (25362 (estimated locally),0.07 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) vTaskPlaceOnEventList/52 (448439 (estimated locally),1.25 per call) prvIsQueueFull/36 (896877 (estimated locally),2.51 per call) xTaskCheckForTimeOut/51 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vPortEnterCritical/42 (922239 (estimated locally),2.58 per call) vTaskSuspendAll/50 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vTaskInternalSetTimeOutState/49 (304339 (estimated locally),0.85 per call) vPortExitCritical/45 (26079 (estimated locally),0.07 per call) vPortExitCritical/45 (54391 (estimated locally),0.15 per call) xTaskRemoveFromEventList/43 (17949 (estimated locally),0.05 per call) prvCopyDataToQueue/31 (54391 (estimated locally),0.15 per call) vPortEnterCritical/42 (1002708 (estimated locally),2.80 per call) xTaskGetSchedulerState/48 (141108 (estimated locally),0.39 per call)
  455. xQueueCreateCountingSemaphore/14 (xQueueCreateCountingSemaphore) @05e680e0
  456. Type: function definition analyzed
  457. Visibility: externally_visible public
  458. References:
  459. Referring:
  460. Availability: available
  461. Function flags: count:128592 (estimated locally) body optimize_size
  462. Called by:
  463. Calls: xQueueGenericCreate/6 (21218 (estimated locally),0.17 per call)
  464. xQueueTakeMutexRecursive/13 (xQueueTakeMutexRecursive) @05e609a0
  465. Type: function definition analyzed
  466. Visibility: externally_visible public
  467. References:
  468. Referring:
  469. Availability: available
  470. Function flags: count:230763 (estimated locally) body optimize_size
  471. Called by:
  472. Calls: xQueueSemaphoreTake/19 (65976 (estimated locally),0.29 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call)
  473. xQueueGiveMutexRecursive/12 (xQueueGiveMutexRecursive) @05e600e0
  474. Type: function definition analyzed
  475. Visibility: externally_visible public
  476. References:
  477. Referring:
  478. Availability: available
  479. Function flags: count:230763 (estimated locally) body optimize_size
  480. Called by:
  481. Calls: xQueueGenericSend/15 (12216 (estimated locally),0.05 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call)
  482. xQueueGetMutexHolderFromISR/11 (xQueueGetMutexHolderFromISR) @05e60c40
  483. Type: function definition analyzed
  484. Visibility: externally_visible public
  485. References:
  486. Referring:
  487. Availability: available
  488. Function flags: count:357913 (estimated locally) body optimize_size
  489. Called by:
  490. Calls:
  491. xQueueGetMutexHolder/10 (xQueueGetMutexHolder) @05e608c0
  492. Type: function definition analyzed
  493. Visibility: externally_visible public
  494. References:
  495. Referring:
  496. Availability: available
  497. Function flags: count:230763 (estimated locally) body optimize_size
  498. Called by:
  499. Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call)
  500. xQueueCreateMutex/9 (xQueueCreateMutex) @05e60540
  501. Type: function definition analyzed
  502. Visibility: externally_visible public
  503. References:
  504. Referring:
  505. Availability: available
  506. Function flags: count:1073741824 (estimated locally) body optimize_size
  507. Called by:
  508. Calls: prvInitialiseMutex/8 (1073741824 (estimated locally),1.00 per call) xQueueGenericCreate/6 (1073741824 (estimated locally),1.00 per call)
  509. prvInitialiseMutex/8 (prvInitialiseMutex) @05e602a0
  510. Type: function definition analyzed
  511. Visibility: prevailing_def_ironly
  512. References:
  513. Referring:
  514. Availability: local
  515. Function flags: count:1073741824 (estimated locally) body local optimize_size
  516. Called by: xQueueCreateMutex/9 (1073741824 (estimated locally),1.00 per call)
  517. Calls: xQueueGenericSend/15 (574129754 (estimated locally),0.53 per call)
  518. prvInitialiseNewQueue/7 (prvInitialiseNewQueue) @05e60000
  519. Type: function definition analyzed
  520. Visibility: prevailing_def_ironly
  521. References:
  522. Referring:
  523. Availability: local
  524. Function flags: count:1073741824 (estimated locally) body local optimize_size
  525. Called by: xQueueGenericCreate/6 (5162 (estimated locally),0.04 per call)
  526. Calls: xQueueGenericReset/5 (1073741824 (estimated locally),1.00 per call)
  527. xQueueGenericCreate/6 (xQueueGenericCreate) @05e767e0
  528. Type: function definition analyzed
  529. Visibility: externally_visible public
  530. References:
  531. Referring:
  532. Availability: available
  533. Function flags: count:117029 (estimated locally) body optimize_size
  534. Called by: xQueueCreateMutex/9 (1073741824 (estimated locally),1.00 per call) xQueueCreateCountingSemaphore/14 (21218 (estimated locally),0.17 per call)
  535. Calls: prvInitialiseNewQueue/7 (5162 (estimated locally),0.04 per call) pvPortMalloc/46 (9655 (estimated locally),0.08 per call)
  536. xQueueGenericReset/5 (xQueueGenericReset) @05e76c40
  537. Type: function definition analyzed
  538. Visibility: externally_visible public
  539. References:
  540. Referring:
  541. Availability: available
  542. Function flags: count:183702 (estimated locally) body optimize_size
  543. Called by: prvInitialiseNewQueue/7 (1073741824 (estimated locally),1.00 per call)
  544. Calls: xQueueGenericReset.part.0/65 (21218 (estimated locally),0.12 per call)
  545. xQueueRegistry/4 (xQueueRegistry) @05e71630
  546. Type: variable definition analyzed
  547. Visibility: externally_visible public
  548. References:
  549. Referring: pcQueueGetName/39 (read)vQueueAddToRegistry/38 (addr)vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)pcQueueGetName/39 (read)vQueueAddToRegistry/38 (read)vQueueUnregisterQueue/40 (read)vQueueUnregisterQueue/40 (write)vQueueUnregisterQueue/40 (write)
  550. Availability: available
  551. Varpool flags:
  552. vQueueUnregisterQueue.part.0 ()
  553. {
  554. UBaseType_t ux;
  555. uint32_t ulNewBASEPRI;
  556. struct QueueDefinition * xQueue;
  557. <bb 5> [local count: 107374]:
  558. # DEBUG D#2 s=> xQueue
  559. # DEBUG xQueue => D#2
  560. <bb 2> [local count: 107374]:
  561. # DEBUG BEGIN_STMT
  562. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  563. # DEBUG BEGIN_STMT
  564. # DEBUG BEGIN_STMT
  565. __asm__ __volatile__(" mov %0, %1
  566. msr basepri, %0
  567. isb
  568. dsb
  569. " : "=r" ulNewBASEPRI_1 : "i" 16 : "memory");
  570. # DEBUG ulNewBASEPRI => ulNewBASEPRI_1
  571. <bb 3> [local count: 1073741824]:
  572. # DEBUG ulNewBASEPRI => NULL
  573. # DEBUG BEGIN_STMT
  574. # DEBUG BEGIN_STMT
  575. # DEBUG BEGIN_STMT
  576. <bb 4> [local count: 1073741824]:
  577. goto <bb 3>; [100.00%]
  578. }
  579. xQueueGenericReset.part.0 (struct QueueDefinition * xQueue, BaseType_t xNewQueue)
  580. {
  581. BaseType_t xReturn;
  582. struct Queue_t * const pxQueue;
  583. uint32_t ulNewBASEPRI;
  584. uint32_t ulNewBASEPRI;
  585. int8_t * _2;
  586. long unsigned int _3;
  587. long unsigned int _4;
  588. long unsigned int _5;
  589. int8_t * _6;
  590. long unsigned int _7;
  591. long unsigned int _8;
  592. int8_t * _9;
  593. long unsigned int _11;
  594. struct List_t * _12;
  595. long int _13;
  596. struct List_t * _14;
  597. struct List_t * _15;
  598. <bb 8> [local count: 1073741824]:
  599. <bb 2> [local count: 1073741824]:
  600. # DEBUG BEGIN_STMT
  601. vPortEnterCritical ();
  602. # DEBUG BEGIN_STMT
  603. _2 = MEM[(struct Queue_t *)xQueue_1(D)].pcHead;
  604. _3 = MEM[(struct Queue_t *)xQueue_1(D)].uxLength;
  605. _4 = MEM[(struct Queue_t *)xQueue_1(D)].uxItemSize;
  606. _5 = _3 * _4;
  607. _6 = _2 + _5;
  608. MEM[(struct Queue_t *)xQueue_1(D)].u.xQueue.pcTail = _6;
  609. # DEBUG BEGIN_STMT
  610. MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting ={v} 0;
  611. # DEBUG BEGIN_STMT
  612. MEM[(struct Queue_t *)xQueue_1(D)].pcWriteTo = _2;
  613. # DEBUG BEGIN_STMT
  614. _7 = _3 + 4294967295;
  615. _8 = _4 * _7;
  616. _9 = _2 + _8;
  617. MEM[(struct Queue_t *)xQueue_1(D)].u.xQueue.pcReadFrom = _9;
  618. # DEBUG BEGIN_STMT
  619. MEM[(struct Queue_t *)xQueue_1(D)].cRxLock ={v} -1;
  620. # DEBUG BEGIN_STMT
  621. MEM[(struct Queue_t *)xQueue_1(D)].cTxLock ={v} -1;
  622. # DEBUG BEGIN_STMT
  623. if (xNewQueue_10(D) == 0)
  624. goto <bb 3>; [67.00%]
  625. else
  626. goto <bb 6>; [33.00%]
  627. <bb 3> [local count: 719407023]:
  628. # DEBUG BEGIN_STMT
  629. _11 ={v} MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend.uxNumberOfItems;
  630. if (_11 != 0)
  631. goto <bb 4>; [33.00%]
  632. else
  633. goto <bb 7>; [67.00%]
  634. <bb 4> [local count: 237404317]:
  635. # DEBUG BEGIN_STMT
  636. _12 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend;
  637. _13 = xTaskRemoveFromEventList (_12);
  638. if (_13 != 0)
  639. goto <bb 5>; [50.00%]
  640. else
  641. goto <bb 7>; [50.00%]
  642. <bb 5> [local count: 118702159]:
  643. # DEBUG BEGIN_STMT
  644. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  645. # DEBUG BEGIN_STMT
  646. __asm__ __volatile__("dsb" : : : "memory");
  647. # DEBUG BEGIN_STMT
  648. __asm__ __volatile__("isb");
  649. # DEBUG BEGIN_STMT
  650. goto <bb 7>; [100.00%]
  651. <bb 6> [local count: 354334802]:
  652. # DEBUG BEGIN_STMT
  653. _14 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend;
  654. vListInitialise (_14);
  655. # DEBUG BEGIN_STMT
  656. _15 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToReceive;
  657. vListInitialise (_15);
  658. <bb 7> [local count: 1073741824]:
  659. # DEBUG BEGIN_STMT
  660. vPortExitCritical ();
  661. # DEBUG xReturn => 1
  662. # DEBUG BEGIN_STMT
  663. # DEBUG BEGIN_STMT
  664. # DEBUG BEGIN_STMT
  665. return 1;
  666. }
  667. vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
  668. {
  669. signed char _1;
  670. signed char _2;
  671. long unsigned int _3;
  672. struct List_t * _4;
  673. <bb 2> [local count: 1073741824]:
  674. # DEBUG BEGIN_STMT
  675. # DEBUG pxQueue => xQueue_8(D)
  676. # DEBUG BEGIN_STMT
  677. vPortEnterCritical ();
  678. # DEBUG BEGIN_STMT
  679. _1 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cRxLock;
  680. if (_1 == -1)
  681. goto <bb 3>; [34.00%]
  682. else
  683. goto <bb 4>; [66.00%]
  684. <bb 3> [local count: 365072220]:
  685. # DEBUG BEGIN_STMT
  686. MEM[(struct Queue_t *)xQueue_8(D)].cRxLock ={v} 0;
  687. <bb 4> [local count: 1073741824]:
  688. # DEBUG BEGIN_STMT
  689. _2 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cTxLock;
  690. if (_2 == -1)
  691. goto <bb 5>; [34.00%]
  692. else
  693. goto <bb 6>; [66.00%]
  694. <bb 5> [local count: 365072220]:
  695. # DEBUG BEGIN_STMT
  696. MEM[(struct Queue_t *)xQueue_8(D)].cTxLock ={v} 0;
  697. <bb 6> [local count: 1073741824]:
  698. # DEBUG BEGIN_STMT
  699. vPortExitCritical ();
  700. # DEBUG BEGIN_STMT
  701. _3 ={v} MEM[(struct Queue_t *)xQueue_8(D)].uxMessagesWaiting;
  702. if (_3 == 0)
  703. goto <bb 7>; [33.00%]
  704. else
  705. goto <bb 8>; [67.00%]
  706. <bb 7> [local count: 354334802]:
  707. # DEBUG BEGIN_STMT
  708. _4 = &MEM[(struct Queue_t *)xQueue_8(D)].xTasksWaitingToReceive;
  709. vTaskPlaceOnEventListRestricted (_4, xTicksToWait_14(D), xWaitIndefinitely_15(D));
  710. <bb 8> [local count: 1073741824]:
  711. # DEBUG BEGIN_STMT
  712. # DEBUG BEGIN_STMT
  713. prvUnlockQueue (xQueue_8(D));
  714. return;
  715. }
  716. vQueueUnregisterQueue (struct QueueDefinition * xQueue)
  717. {
  718. UBaseType_t ux;
  719. struct QueueDefinition * _1;
  720. <bb 2> [local count: 357913]:
  721. # DEBUG BEGIN_STMT
  722. # DEBUG BEGIN_STMT
  723. if (xQueue_3(D) == 0B)
  724. goto <bb 3>; [30.00%]
  725. else
  726. goto <bb 7>; [70.00%]
  727. <bb 3> [local count: 107374]:
  728. # DEBUG D#1 => xQueue_3(D)
  729. vQueueUnregisterQueue.part.0 ();
  730. <bb 4> [local count: 451483]:
  731. # DEBUG BEGIN_STMT
  732. _1 = xQueueRegistry[ux_2].xHandle;
  733. if (_1 == xQueue_3(D))
  734. goto <bb 5>; [5.50%]
  735. else
  736. goto <bb 6>; [94.50%]
  737. <bb 5> [local count: 24832]:
  738. # ux_4 = PHI <ux_2(4)>
  739. # DEBUG BEGIN_STMT
  740. xQueueRegistry[ux_4].pcQueueName = 0B;
  741. # DEBUG BEGIN_STMT
  742. xQueueRegistry[ux_4].xHandle = 0B;
  743. # DEBUG BEGIN_STMT
  744. goto <bb 8>; [100.00%]
  745. <bb 6> [local count: 426652]:
  746. # DEBUG BEGIN_STMT
  747. # DEBUG BEGIN_STMT
  748. ux_6 = ux_2 + 1;
  749. # DEBUG ux => ux_6
  750. <bb 7> [local count: 677191]:
  751. # ux_2 = PHI <ux_6(6), 0(2)>
  752. # DEBUG ux => ux_2
  753. # DEBUG BEGIN_STMT
  754. if (ux_2 != 2)
  755. goto <bb 4>; [66.67%]
  756. else
  757. goto <bb 8>; [33.33%]
  758. <bb 8> [local count: 250539]:
  759. return;
  760. }
  761. pcQueueGetName (struct QueueDefinition * xQueue)
  762. {
  763. uint32_t ulNewBASEPRI;
  764. const char * pcReturn;
  765. UBaseType_t ux;
  766. struct QueueDefinition * _1;
  767. <bb 2> [local count: 357913]:
  768. # DEBUG BEGIN_STMT
  769. # DEBUG BEGIN_STMT
  770. # DEBUG pcReturn => 0B
  771. # DEBUG BEGIN_STMT
  772. if (xQueue_5(D) == 0B)
  773. goto <bb 3>; [30.00%]
  774. else
  775. goto <bb 10>; [70.00%]
  776. <bb 10> [local count: 250539]:
  777. goto <bb 8>; [100.00%]
  778. <bb 3> [local count: 107374]:
  779. # DEBUG BEGIN_STMT
  780. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  781. # DEBUG BEGIN_STMT
  782. # DEBUG BEGIN_STMT
  783. __asm__ __volatile__(" mov %0, %1
  784. msr basepri, %0
  785. isb
  786. dsb
  787. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  788. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  789. <bb 4> [local count: 1073741824]:
  790. # DEBUG ulNewBASEPRI => NULL
  791. # DEBUG BEGIN_STMT
  792. # DEBUG BEGIN_STMT
  793. # DEBUG BEGIN_STMT
  794. <bb 11> [local count: 1073741824]:
  795. goto <bb 4>; [100.00%]
  796. <bb 5> [local count: 451483]:
  797. # DEBUG BEGIN_STMT
  798. _1 = xQueueRegistry[ux_2].xHandle;
  799. if (_1 == xQueue_5(D))
  800. goto <bb 6>; [5.50%]
  801. else
  802. goto <bb 7>; [94.50%]
  803. <bb 6> [local count: 24832]:
  804. # ux_4 = PHI <ux_2(5)>
  805. # DEBUG BEGIN_STMT
  806. pcReturn_8 = xQueueRegistry[ux_4].pcQueueName;
  807. # DEBUG pcReturn => pcReturn_8
  808. # DEBUG BEGIN_STMT
  809. goto <bb 9>; [100.00%]
  810. <bb 7> [local count: 426652]:
  811. # DEBUG BEGIN_STMT
  812. # DEBUG BEGIN_STMT
  813. ux_7 = ux_2 + 1;
  814. # DEBUG ux => ux_7
  815. <bb 8> [local count: 677191]:
  816. # ux_2 = PHI <ux_7(7), 0(10)>
  817. # DEBUG ux => ux_2
  818. # DEBUG BEGIN_STMT
  819. if (ux_2 != 2)
  820. goto <bb 5>; [66.67%]
  821. else
  822. goto <bb 9>; [33.33%]
  823. <bb 9> [local count: 250539]:
  824. # pcReturn_3 = PHI <pcReturn_8(6), 0B(8)>
  825. # DEBUG pcReturn => pcReturn_3
  826. # DEBUG BEGIN_STMT
  827. return pcReturn_3;
  828. }
  829. vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName)
  830. {
  831. uint32_t ulNewBASEPRI;
  832. struct QueueRegistryItem_t * pxEntryToWrite;
  833. UBaseType_t ux;
  834. struct QueueDefinition * _1;
  835. const char * _2;
  836. <bb 2> [local count: 357913]:
  837. # DEBUG BEGIN_STMT
  838. # DEBUG BEGIN_STMT
  839. if (xQueue_8(D) == 0B)
  840. goto <bb 3>; [30.00%]
  841. else
  842. goto <bb 5>; [70.00%]
  843. <bb 3> [local count: 107374]:
  844. # DEBUG BEGIN_STMT
  845. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  846. # DEBUG BEGIN_STMT
  847. # DEBUG BEGIN_STMT
  848. __asm__ __volatile__(" mov %0, %1
  849. msr basepri, %0
  850. isb
  851. dsb
  852. " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  853. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  854. <bb 4> [local count: 1073741824]:
  855. # DEBUG ulNewBASEPRI => NULL
  856. # DEBUG BEGIN_STMT
  857. # DEBUG BEGIN_STMT
  858. # DEBUG BEGIN_STMT
  859. <bb 17> [local count: 1073741824]:
  860. goto <bb 4>; [100.00%]
  861. <bb 5> [local count: 250539]:
  862. # DEBUG BEGIN_STMT
  863. # DEBUG BEGIN_STMT
  864. # DEBUG pxEntryToWrite => 0B
  865. # DEBUG BEGIN_STMT
  866. if (pcQueueName_10(D) != 0B)
  867. goto <bb 16>; [70.00%]
  868. else
  869. goto <bb 15>; [30.00%]
  870. <bb 16> [local count: 175378]:
  871. goto <bb 12>; [100.00%]
  872. <bb 6> [local count: 316038]:
  873. # DEBUG BEGIN_STMT
  874. _1 = xQueueRegistry[ux_3].xHandle;
  875. if (_1 == xQueue_8(D))
  876. goto <bb 7>; [5.50%]
  877. else
  878. goto <bb 8>; [94.50%]
  879. <bb 7> [local count: 17382]:
  880. # ux_9 = PHI <ux_3(6)>
  881. # DEBUG BEGIN_STMT
  882. pxEntryToWrite_14 = &xQueueRegistry[ux_9];
  883. # DEBUG pxEntryToWrite => pxEntryToWrite_14
  884. # DEBUG BEGIN_STMT
  885. goto <bb 13>; [100.00%]
  886. <bb 8> [local count: 298656]:
  887. # DEBUG BEGIN_STMT
  888. if (pxEntryToWrite_5 == 0B)
  889. goto <bb 9>; [30.00%]
  890. else
  891. goto <bb 11>; [70.00%]
  892. <bb 9> [local count: 89597]:
  893. _2 = xQueueRegistry[ux_3].pcQueueName;
  894. if (_2 == 0B)
  895. goto <bb 10>; [30.00%]
  896. else
  897. goto <bb 11>; [70.00%]
  898. <bb 10> [local count: 26879]:
  899. # DEBUG BEGIN_STMT
  900. pxEntryToWrite_12 = &xQueueRegistry[ux_3];
  901. # DEBUG pxEntryToWrite => pxEntryToWrite_12
  902. <bb 11> [local count: 298656]:
  903. # pxEntryToWrite_4 = PHI <pxEntryToWrite_5(8), 0B(9), pxEntryToWrite_12(10)>
  904. # DEBUG pxEntryToWrite => pxEntryToWrite_4
  905. # DEBUG BEGIN_STMT
  906. # DEBUG BEGIN_STMT
  907. ux_13 = ux_3 + 1;
  908. # DEBUG ux => ux_13
  909. <bb 12> [local count: 474034]:
  910. # ux_3 = PHI <ux_13(11), 0(16)>
  911. # pxEntryToWrite_5 = PHI <pxEntryToWrite_4(11), 0B(16)>
  912. # DEBUG pxEntryToWrite => pxEntryToWrite_5
  913. # DEBUG ux => ux_3
  914. # DEBUG BEGIN_STMT
  915. if (ux_3 != 2)
  916. goto <bb 6>; [66.67%]
  917. else
  918. goto <bb 13>; [33.33%]
  919. <bb 13> [local count: 175378]:
  920. # pxEntryToWrite_6 = PHI <pxEntryToWrite_5(12), pxEntryToWrite_14(7)>
  921. # DEBUG pxEntryToWrite => pxEntryToWrite_6
  922. # DEBUG BEGIN_STMT
  923. if (pxEntryToWrite_6 != 0B)
  924. goto <bb 14>; [70.00%]
  925. else
  926. goto <bb 15>; [30.00%]
  927. <bb 14> [local count: 122764]:
  928. # DEBUG BEGIN_STMT
  929. pxEntryToWrite_6->pcQueueName = pcQueueName_10(D);
  930. # DEBUG BEGIN_STMT
  931. pxEntryToWrite_6->xHandle = xQueue_8(D);
  932. <bb 15> [local count: 250539]:
  933. # DEBUG pxEntryToWrite => NULL
  934. # DEBUG BEGIN_STMT
  935. return;
  936. }
  937. xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue)
  938. {
  939. uint32_t ulNewBASEPRI;
  940. BaseType_t xReturn;
  941. long unsigned int _1;
  942. long unsigned int _2;
  943. <bb 2> [local count: 357913]:
  944. # DEBUG BEGIN_STMT
  945. # DEBUG BEGIN_STMT
  946. # DEBUG pxQueue => xQueue_4(D)
  947. # DEBUG BEGIN_STMT
  948. if (xQueue_4(D) == 0B)
  949. goto <bb 3>; [30.00%]
  950. else
  951. goto <bb 5>; [70.00%]
  952. <bb 3> [local count: 107374]:
  953. # DEBUG BEGIN_STMT
  954. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  955. # DEBUG BEGIN_STMT
  956. # DEBUG BEGIN_STMT
  957. __asm__ __volatile__(" mov %0, %1
  958. msr basepri, %0
  959. isb
  960. dsb
  961. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  962. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  963. <bb 4> [local count: 1073741824]:
  964. # DEBUG ulNewBASEPRI => NULL
  965. # DEBUG BEGIN_STMT
  966. # DEBUG BEGIN_STMT
  967. # DEBUG BEGIN_STMT
  968. <bb 8> [local count: 1073741824]:
  969. goto <bb 4>; [100.00%]
  970. <bb 5> [local count: 250539]:
  971. # DEBUG BEGIN_STMT
  972. # DEBUG BEGIN_STMT
  973. _1 ={v} MEM[(struct Queue_t *)xQueue_4(D)].uxMessagesWaiting;
  974. _2 = MEM[(struct Queue_t *)xQueue_4(D)].uxLength;
  975. if (_1 == _2)
  976. goto <bb 7>; [34.00%]
  977. else
  978. goto <bb 6>; [66.00%]
  979. <bb 6> [local count: 165356]:
  980. # DEBUG BEGIN_STMT
  981. # DEBUG xReturn => 0
  982. <bb 7> [local count: 250539]:
  983. # xReturn_3 = PHI <1(5), 0(6)>
  984. # DEBUG xReturn => xReturn_3
  985. # DEBUG BEGIN_STMT
  986. return xReturn_3;
  987. }
  988. prvIsQueueFull (const struct Queue_t * pxQueue)
  989. {
  990. BaseType_t xReturn;
  991. long unsigned int _1;
  992. long unsigned int _2;
  993. <bb 2> [local count: 1073741824]:
  994. # DEBUG BEGIN_STMT
  995. # DEBUG BEGIN_STMT
  996. vPortEnterCritical ();
  997. # DEBUG BEGIN_STMT
  998. _1 ={v} pxQueue_6(D)->uxMessagesWaiting;
  999. _2 = pxQueue_6(D)->uxLength;
  1000. if (_1 == _2)
  1001. goto <bb 4>; [34.00%]
  1002. else
  1003. goto <bb 3>; [66.00%]
  1004. <bb 3> [local count: 708669605]:
  1005. # DEBUG BEGIN_STMT
  1006. # DEBUG xReturn => 0
  1007. <bb 4> [local count: 1073741824]:
  1008. # xReturn_3 = PHI <1(2), 0(3)>
  1009. # DEBUG xReturn => xReturn_3
  1010. # DEBUG BEGIN_STMT
  1011. vPortExitCritical ();
  1012. # DEBUG BEGIN_STMT
  1013. return xReturn_3;
  1014. }
  1015. xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue)
  1016. {
  1017. uint32_t ulNewBASEPRI;
  1018. BaseType_t xReturn;
  1019. long unsigned int _1;
  1020. <bb 2> [local count: 357913]:
  1021. # DEBUG BEGIN_STMT
  1022. # DEBUG BEGIN_STMT
  1023. # DEBUG pxQueue => xQueue_3(D)
  1024. # DEBUG BEGIN_STMT
  1025. if (xQueue_3(D) == 0B)
  1026. goto <bb 3>; [30.00%]
  1027. else
  1028. goto <bb 5>; [70.00%]
  1029. <bb 3> [local count: 107374]:
  1030. # DEBUG BEGIN_STMT
  1031. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1032. # DEBUG BEGIN_STMT
  1033. # DEBUG BEGIN_STMT
  1034. __asm__ __volatile__(" mov %0, %1
  1035. msr basepri, %0
  1036. isb
  1037. dsb
  1038. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  1039. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  1040. <bb 4> [local count: 1073741824]:
  1041. # DEBUG ulNewBASEPRI => NULL
  1042. # DEBUG BEGIN_STMT
  1043. # DEBUG BEGIN_STMT
  1044. # DEBUG BEGIN_STMT
  1045. <bb 8> [local count: 1073741824]:
  1046. goto <bb 4>; [100.00%]
  1047. <bb 5> [local count: 250539]:
  1048. # DEBUG BEGIN_STMT
  1049. # DEBUG BEGIN_STMT
  1050. _1 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  1051. if (_1 == 0)
  1052. goto <bb 7>; [50.00%]
  1053. else
  1054. goto <bb 6>; [50.00%]
  1055. <bb 6> [local count: 125270]:
  1056. # DEBUG BEGIN_STMT
  1057. # DEBUG xReturn => 0
  1058. <bb 7> [local count: 250539]:
  1059. # xReturn_2 = PHI <1(5), 0(6)>
  1060. # DEBUG xReturn => xReturn_2
  1061. # DEBUG BEGIN_STMT
  1062. return xReturn_2;
  1063. }
  1064. prvIsQueueEmpty (const struct Queue_t * pxQueue)
  1065. {
  1066. BaseType_t xReturn;
  1067. long unsigned int _1;
  1068. <bb 2> [local count: 1073741824]:
  1069. # DEBUG BEGIN_STMT
  1070. # DEBUG BEGIN_STMT
  1071. vPortEnterCritical ();
  1072. # DEBUG BEGIN_STMT
  1073. _1 ={v} pxQueue_5(D)->uxMessagesWaiting;
  1074. if (_1 == 0)
  1075. goto <bb 4>; [50.00%]
  1076. else
  1077. goto <bb 3>; [50.00%]
  1078. <bb 3> [local count: 536870913]:
  1079. # DEBUG BEGIN_STMT
  1080. # DEBUG xReturn => 0
  1081. <bb 4> [local count: 1073741824]:
  1082. # xReturn_2 = PHI <1(2), 0(3)>
  1083. # DEBUG xReturn => xReturn_2
  1084. # DEBUG BEGIN_STMT
  1085. vPortExitCritical ();
  1086. # DEBUG BEGIN_STMT
  1087. return xReturn_2;
  1088. }
  1089. prvUnlockQueue (struct Queue_t * const pxQueue)
  1090. {
  1091. int8_t cRxLock;
  1092. int8_t cTxLock;
  1093. long unsigned int _1;
  1094. struct List_t * _2;
  1095. long int _3;
  1096. unsigned char cTxLock.6_4;
  1097. unsigned char _5;
  1098. long unsigned int _6;
  1099. struct List_t * _7;
  1100. long int _8;
  1101. unsigned char cRxLock.7_9;
  1102. unsigned char _10;
  1103. <bb 2> [local count: 114863534]:
  1104. # DEBUG BEGIN_STMT
  1105. vPortEnterCritical ();
  1106. # DEBUG BEGIN_STMT
  1107. cTxLock_20 ={v} pxQueue_19(D)->cTxLock;
  1108. # DEBUG cTxLock => cTxLock_20
  1109. # DEBUG BEGIN_STMT
  1110. goto <bb 7>; [100.00%]
  1111. <bb 3> [local count: 1014686025]:
  1112. # DEBUG BEGIN_STMT
  1113. _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems;
  1114. if (_1 != 0)
  1115. goto <bb 4>; [94.50%]
  1116. else
  1117. goto <bb 8>; [5.50%]
  1118. <bb 4> [local count: 958878293]:
  1119. # DEBUG BEGIN_STMT
  1120. _2 = &pxQueue_19(D)->xTasksWaitingToReceive;
  1121. _3 = xTaskRemoveFromEventList (_2);
  1122. if (_3 != 0)
  1123. goto <bb 5>; [33.00%]
  1124. else
  1125. goto <bb 6>; [67.00%]
  1126. <bb 5> [local count: 316429836]:
  1127. # DEBUG BEGIN_STMT
  1128. vTaskMissedYield ();
  1129. <bb 6> [local count: 958878293]:
  1130. # DEBUG BEGIN_STMT
  1131. # DEBUG BEGIN_STMT
  1132. cTxLock.6_4 = (unsigned char) cTxLock_11;
  1133. _5 = cTxLock.6_4 + 255;
  1134. cTxLock_23 = (int8_t) _5;
  1135. # DEBUG cTxLock => cTxLock_23
  1136. <bb 7> [local count: 1073741824]:
  1137. # cTxLock_11 = PHI <cTxLock_20(2), cTxLock_23(6)>
  1138. # DEBUG cTxLock => cTxLock_11
  1139. # DEBUG BEGIN_STMT
  1140. if (cTxLock_11 > 0)
  1141. goto <bb 3>; [94.50%]
  1142. else
  1143. goto <bb 8>; [5.50%]
  1144. <bb 8> [local count: 114863532]:
  1145. # DEBUG BEGIN_STMT
  1146. pxQueue_19(D)->cTxLock ={v} -1;
  1147. # DEBUG BEGIN_STMT
  1148. vPortExitCritical ();
  1149. # DEBUG BEGIN_STMT
  1150. vPortEnterCritical ();
  1151. # DEBUG BEGIN_STMT
  1152. cRxLock_27 ={v} pxQueue_19(D)->cRxLock;
  1153. # DEBUG cRxLock => cRxLock_27
  1154. # DEBUG BEGIN_STMT
  1155. goto <bb 13>; [100.00%]
  1156. <bb 9> [local count: 1014686003]:
  1157. # DEBUG BEGIN_STMT
  1158. _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems;
  1159. if (_6 != 0)
  1160. goto <bb 10>; [94.50%]
  1161. else
  1162. goto <bb 14>; [5.50%]
  1163. <bb 10> [local count: 958878272]:
  1164. # DEBUG BEGIN_STMT
  1165. _7 = &pxQueue_19(D)->xTasksWaitingToSend;
  1166. _8 = xTaskRemoveFromEventList (_7);
  1167. if (_8 != 0)
  1168. goto <bb 11>; [33.00%]
  1169. else
  1170. goto <bb 12>; [67.00%]
  1171. <bb 11> [local count: 316429830]:
  1172. # DEBUG BEGIN_STMT
  1173. vTaskMissedYield ();
  1174. <bb 12> [local count: 958878272]:
  1175. # DEBUG BEGIN_STMT
  1176. # DEBUG BEGIN_STMT
  1177. cRxLock.7_9 = (unsigned char) cRxLock_12;
  1178. _10 = cRxLock.7_9 + 255;
  1179. cRxLock_30 = (int8_t) _10;
  1180. # DEBUG cRxLock => cRxLock_30
  1181. <bb 13> [local count: 1073741803]:
  1182. # cRxLock_12 = PHI <cRxLock_27(8), cRxLock_30(12)>
  1183. # DEBUG cRxLock => cRxLock_12
  1184. # DEBUG BEGIN_STMT
  1185. if (cRxLock_12 > 0)
  1186. goto <bb 9>; [94.50%]
  1187. else
  1188. goto <bb 14>; [5.50%]
  1189. <bb 14> [local count: 114863529]:
  1190. # DEBUG BEGIN_STMT
  1191. pxQueue_19(D)->cRxLock ={v} -1;
  1192. # DEBUG BEGIN_STMT
  1193. vPortExitCritical ();
  1194. return;
  1195. }
  1196. prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer)
  1197. {
  1198. long unsigned int _1;
  1199. int8_t * _2;
  1200. int8_t * _3;
  1201. int8_t * _4;
  1202. int8_t * _5;
  1203. int8_t * _6;
  1204. <bb 2> [local count: 1073741824]:
  1205. # DEBUG BEGIN_STMT
  1206. _1 = pxQueue_10(D)->uxItemSize;
  1207. if (_1 != 0)
  1208. goto <bb 3>; [50.00%]
  1209. else
  1210. goto <bb 6>; [50.00%]
  1211. <bb 3> [local count: 536870913]:
  1212. # DEBUG BEGIN_STMT
  1213. _2 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  1214. _3 = _2 + _1;
  1215. pxQueue_10(D)->u.xQueue.pcReadFrom = _3;
  1216. # DEBUG BEGIN_STMT
  1217. _4 = pxQueue_10(D)->u.xQueue.pcTail;
  1218. if (_3 >= _4)
  1219. goto <bb 4>; [50.00%]
  1220. else
  1221. goto <bb 5>; [50.00%]
  1222. <bb 4> [local count: 268435456]:
  1223. # DEBUG BEGIN_STMT
  1224. _5 = pxQueue_10(D)->pcHead;
  1225. pxQueue_10(D)->u.xQueue.pcReadFrom = _5;
  1226. <bb 5> [local count: 536870913]:
  1227. # DEBUG BEGIN_STMT
  1228. # DEBUG BEGIN_STMT
  1229. _6 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  1230. memcpy (pvBuffer_13(D), _6, _1);
  1231. <bb 6> [local count: 1073741824]:
  1232. return;
  1233. }
  1234. prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition)
  1235. {
  1236. UBaseType_t uxMessagesWaiting;
  1237. BaseType_t xReturn;
  1238. long unsigned int _1;
  1239. int8_t * _2;
  1240. struct tskTaskControlBlock * _3;
  1241. int8_t * _4;
  1242. int8_t * _5;
  1243. long unsigned int _6;
  1244. int8_t * _7;
  1245. int8_t * _8;
  1246. int8_t * _9;
  1247. int8_t * _10;
  1248. int8_t * _11;
  1249. long unsigned int _12;
  1250. sizetype _13;
  1251. int8_t * _14;
  1252. int8_t * _15;
  1253. int8_t * _16;
  1254. int8_t * _17;
  1255. long unsigned int _18;
  1256. <bb 2> [local count: 1073741823]:
  1257. # DEBUG BEGIN_STMT
  1258. # DEBUG xReturn => 0
  1259. # DEBUG BEGIN_STMT
  1260. # DEBUG BEGIN_STMT
  1261. uxMessagesWaiting_25 ={v} pxQueue_24(D)->uxMessagesWaiting;
  1262. # DEBUG uxMessagesWaiting => uxMessagesWaiting_25
  1263. # DEBUG BEGIN_STMT
  1264. _1 = pxQueue_24(D)->uxItemSize;
  1265. if (_1 == 0)
  1266. goto <bb 3>; [50.00%]
  1267. else
  1268. goto <bb 5>; [50.00%]
  1269. <bb 3> [local count: 536870911]:
  1270. # DEBUG BEGIN_STMT
  1271. _2 = pxQueue_24(D)->pcHead;
  1272. if (_2 == 0B)
  1273. goto <bb 4>; [17.43%]
  1274. else
  1275. goto <bb 13>; [82.57%]
  1276. <bb 4> [local count: 93576600]:
  1277. # DEBUG BEGIN_STMT
  1278. _3 = pxQueue_24(D)->u.xSemaphore.xMutexHolder;
  1279. xReturn_36 = xTaskPriorityDisinherit (_3);
  1280. # DEBUG xReturn => xReturn_36
  1281. # DEBUG BEGIN_STMT
  1282. pxQueue_24(D)->u.xSemaphore.xMutexHolder = 0B;
  1283. goto <bb 13>; [100.00%]
  1284. <bb 5> [local count: 536870911]:
  1285. # DEBUG BEGIN_STMT
  1286. if (xPosition_26(D) == 0)
  1287. goto <bb 6>; [50.00%]
  1288. else
  1289. goto <bb 8>; [50.00%]
  1290. <bb 6> [local count: 268435456]:
  1291. # DEBUG BEGIN_STMT
  1292. _4 = pxQueue_24(D)->pcWriteTo;
  1293. memcpy (_4, pvItemToQueue_27(D), _1);
  1294. # DEBUG BEGIN_STMT
  1295. _5 = pxQueue_24(D)->pcWriteTo;
  1296. _6 = pxQueue_24(D)->uxItemSize;
  1297. _7 = _5 + _6;
  1298. pxQueue_24(D)->pcWriteTo = _7;
  1299. # DEBUG BEGIN_STMT
  1300. _8 = pxQueue_24(D)->u.xQueue.pcTail;
  1301. if (_7 >= _8)
  1302. goto <bb 7>; [50.00%]
  1303. else
  1304. goto <bb 13>; [50.00%]
  1305. <bb 7> [local count: 134217728]:
  1306. # DEBUG BEGIN_STMT
  1307. _9 = pxQueue_24(D)->pcHead;
  1308. pxQueue_24(D)->pcWriteTo = _9;
  1309. goto <bb 13>; [100.00%]
  1310. <bb 8> [local count: 268435456]:
  1311. # DEBUG BEGIN_STMT
  1312. _10 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  1313. memcpy (_10, pvItemToQueue_27(D), _1);
  1314. # DEBUG BEGIN_STMT
  1315. _11 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  1316. _12 = pxQueue_24(D)->uxItemSize;
  1317. _13 = -_12;
  1318. _14 = _11 + _13;
  1319. pxQueue_24(D)->u.xQueue.pcReadFrom = _14;
  1320. # DEBUG BEGIN_STMT
  1321. _15 = pxQueue_24(D)->pcHead;
  1322. if (_14 < _15)
  1323. goto <bb 9>; [50.00%]
  1324. else
  1325. goto <bb 10>; [50.00%]
  1326. <bb 9> [local count: 134217728]:
  1327. # DEBUG BEGIN_STMT
  1328. _16 = pxQueue_24(D)->u.xQueue.pcTail;
  1329. _17 = _16 + _13;
  1330. pxQueue_24(D)->u.xQueue.pcReadFrom = _17;
  1331. <bb 10> [local count: 268435456]:
  1332. # DEBUG BEGIN_STMT
  1333. # DEBUG BEGIN_STMT
  1334. if (xPosition_26(D) == 2)
  1335. goto <bb 11>; [34.00%]
  1336. else
  1337. goto <bb 13>; [66.00%]
  1338. <bb 11> [local count: 91268055]:
  1339. # DEBUG BEGIN_STMT
  1340. if (uxMessagesWaiting_25 != 0)
  1341. goto <bb 12>; [50.00%]
  1342. else
  1343. goto <bb 13>; [50.00%]
  1344. <bb 12> [local count: 45634027]:
  1345. # DEBUG BEGIN_STMT
  1346. uxMessagesWaiting_31 = uxMessagesWaiting_25 + 4294967295;
  1347. # DEBUG uxMessagesWaiting => uxMessagesWaiting_31
  1348. <bb 13> [local count: 1073741824]:
  1349. # xReturn_19 = PHI <xReturn_36(4), 0(7), 0(10), 0(12), 0(3), 0(6), 0(11)>
  1350. # uxMessagesWaiting_20 = PHI <uxMessagesWaiting_25(4), uxMessagesWaiting_25(7), uxMessagesWaiting_25(10), uxMessagesWaiting_31(12), uxMessagesWaiting_25(3), uxMessagesWaiting_25(6), uxMessagesWaiting_25(11)>
  1351. # DEBUG uxMessagesWaiting => uxMessagesWaiting_20
  1352. # DEBUG xReturn => xReturn_19
  1353. # DEBUG BEGIN_STMT
  1354. # DEBUG BEGIN_STMT
  1355. _18 = uxMessagesWaiting_20 + 1;
  1356. pxQueue_24(D)->uxMessagesWaiting ={v} _18;
  1357. # DEBUG BEGIN_STMT
  1358. return xReturn_19;
  1359. }
  1360. prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue)
  1361. {
  1362. UBaseType_t uxHighestPriorityOfWaitingTasks;
  1363. long unsigned int _1;
  1364. struct xLIST_ITEM * _2;
  1365. long unsigned int _3;
  1366. <bb 2> [local count: 1073741824]:
  1367. # DEBUG BEGIN_STMT
  1368. # DEBUG BEGIN_STMT
  1369. _1 ={v} pxQueue_6(D)->xTasksWaitingToReceive.uxNumberOfItems;
  1370. if (_1 != 0)
  1371. goto <bb 3>; [50.00%]
  1372. else
  1373. goto <bb 4>; [50.00%]
  1374. <bb 3> [local count: 536870913]:
  1375. # DEBUG BEGIN_STMT
  1376. _2 = pxQueue_6(D)->xTasksWaitingToReceive.xListEnd.pxNext;
  1377. _3 = _2->xItemValue;
  1378. uxHighestPriorityOfWaitingTasks_7 = 5 - _3;
  1379. # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_7
  1380. <bb 4> [local count: 1073741824]:
  1381. # uxHighestPriorityOfWaitingTasks_4 = PHI <uxHighestPriorityOfWaitingTasks_7(3), 0(2)>
  1382. # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_4
  1383. # DEBUG BEGIN_STMT
  1384. return uxHighestPriorityOfWaitingTasks_4;
  1385. }
  1386. ucQueueGetQueueType (struct QueueDefinition * xQueue)
  1387. {
  1388. uint8_t _3;
  1389. <bb 2> [local count: 1073741824]:
  1390. # DEBUG BEGIN_STMT
  1391. _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType;
  1392. return _3;
  1393. }
  1394. vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber)
  1395. {
  1396. <bb 2> [local count: 1073741824]:
  1397. # DEBUG BEGIN_STMT
  1398. MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D);
  1399. return;
  1400. }
  1401. uxQueueGetQueueNumber (struct QueueDefinition * xQueue)
  1402. {
  1403. UBaseType_t _3;
  1404. <bb 2> [local count: 1073741824]:
  1405. # DEBUG BEGIN_STMT
  1406. _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber;
  1407. return _3;
  1408. }
  1409. vQueueDelete (struct QueueDefinition * xQueue)
  1410. {
  1411. uint32_t ulNewBASEPRI;
  1412. <bb 2> [local count: 230763]:
  1413. # DEBUG BEGIN_STMT
  1414. # DEBUG pxQueue => xQueue_1(D)
  1415. # DEBUG BEGIN_STMT
  1416. if (xQueue_1(D) == 0B)
  1417. goto <bb 3>; [46.53%]
  1418. else
  1419. goto <bb 5>; [53.47%]
  1420. <bb 3> [local count: 107374]:
  1421. # DEBUG BEGIN_STMT
  1422. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1423. # DEBUG BEGIN_STMT
  1424. # DEBUG BEGIN_STMT
  1425. __asm__ __volatile__(" mov %0, %1
  1426. msr basepri, %0
  1427. isb
  1428. dsb
  1429. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  1430. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  1431. <bb 4> [local count: 1073741824]:
  1432. # DEBUG ulNewBASEPRI => NULL
  1433. # DEBUG BEGIN_STMT
  1434. # DEBUG BEGIN_STMT
  1435. # DEBUG BEGIN_STMT
  1436. <bb 6> [local count: 1073741824]:
  1437. goto <bb 4>; [100.00%]
  1438. <bb 5> [local count: 123389]:
  1439. # DEBUG BEGIN_STMT
  1440. # DEBUG BEGIN_STMT
  1441. # DEBUG BEGIN_STMT
  1442. vQueueUnregisterQueue (xQueue_1(D));
  1443. # DEBUG BEGIN_STMT
  1444. vPortFree (xQueue_1(D));
  1445. return;
  1446. }
  1447. uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue)
  1448. {
  1449. uint32_t ulNewBASEPRI;
  1450. UBaseType_t uxReturn;
  1451. <bb 2> [local count: 357913]:
  1452. # DEBUG BEGIN_STMT
  1453. # DEBUG BEGIN_STMT
  1454. # DEBUG pxQueue => xQueue_1(D)
  1455. # DEBUG BEGIN_STMT
  1456. if (xQueue_1(D) == 0B)
  1457. goto <bb 3>; [30.00%]
  1458. else
  1459. goto <bb 5>; [70.00%]
  1460. <bb 3> [local count: 107374]:
  1461. # DEBUG BEGIN_STMT
  1462. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1463. # DEBUG BEGIN_STMT
  1464. # DEBUG BEGIN_STMT
  1465. __asm__ __volatile__(" mov %0, %1
  1466. msr basepri, %0
  1467. isb
  1468. dsb
  1469. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1470. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1471. <bb 4> [local count: 1073741824]:
  1472. # DEBUG ulNewBASEPRI => NULL
  1473. # DEBUG BEGIN_STMT
  1474. # DEBUG BEGIN_STMT
  1475. # DEBUG BEGIN_STMT
  1476. <bb 6> [local count: 1073741824]:
  1477. goto <bb 4>; [100.00%]
  1478. <bb 5> [local count: 250539]:
  1479. # DEBUG BEGIN_STMT
  1480. # DEBUG BEGIN_STMT
  1481. uxReturn_3 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  1482. # DEBUG uxReturn => uxReturn_3
  1483. # DEBUG BEGIN_STMT
  1484. return uxReturn_3;
  1485. }
  1486. uxQueueSpacesAvailable (struct QueueDefinition * const xQueue)
  1487. {
  1488. uint32_t ulNewBASEPRI;
  1489. UBaseType_t uxReturn;
  1490. long unsigned int _1;
  1491. long unsigned int _2;
  1492. <bb 2> [local count: 230763]:
  1493. # DEBUG BEGIN_STMT
  1494. # DEBUG BEGIN_STMT
  1495. # DEBUG pxQueue => xQueue_3(D)
  1496. # DEBUG BEGIN_STMT
  1497. if (xQueue_3(D) == 0B)
  1498. goto <bb 3>; [46.53%]
  1499. else
  1500. goto <bb 5>; [53.47%]
  1501. <bb 3> [local count: 107374]:
  1502. # DEBUG BEGIN_STMT
  1503. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1504. # DEBUG BEGIN_STMT
  1505. # DEBUG BEGIN_STMT
  1506. __asm__ __volatile__(" mov %0, %1
  1507. msr basepri, %0
  1508. isb
  1509. dsb
  1510. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1511. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1512. <bb 4> [local count: 1073741824]:
  1513. # DEBUG ulNewBASEPRI => NULL
  1514. # DEBUG BEGIN_STMT
  1515. # DEBUG BEGIN_STMT
  1516. # DEBUG BEGIN_STMT
  1517. <bb 6> [local count: 1073741824]:
  1518. goto <bb 4>; [100.00%]
  1519. <bb 5> [local count: 123389]:
  1520. # DEBUG BEGIN_STMT
  1521. # DEBUG BEGIN_STMT
  1522. vPortEnterCritical ();
  1523. # DEBUG BEGIN_STMT
  1524. _1 = MEM[(struct Queue_t *)xQueue_3(D)].uxLength;
  1525. _2 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  1526. uxReturn_6 = _1 - _2;
  1527. # DEBUG uxReturn => uxReturn_6
  1528. # DEBUG BEGIN_STMT
  1529. vPortExitCritical ();
  1530. # DEBUG BEGIN_STMT
  1531. return uxReturn_6;
  1532. }
  1533. uxQueueMessagesWaiting (struct QueueDefinition * const xQueue)
  1534. {
  1535. uint32_t ulNewBASEPRI;
  1536. UBaseType_t uxReturn;
  1537. <bb 2> [local count: 230763]:
  1538. # DEBUG BEGIN_STMT
  1539. # DEBUG BEGIN_STMT
  1540. if (xQueue_1(D) == 0B)
  1541. goto <bb 3>; [46.53%]
  1542. else
  1543. goto <bb 5>; [53.47%]
  1544. <bb 3> [local count: 107374]:
  1545. # DEBUG BEGIN_STMT
  1546. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1547. # DEBUG BEGIN_STMT
  1548. # DEBUG BEGIN_STMT
  1549. __asm__ __volatile__(" mov %0, %1
  1550. msr basepri, %0
  1551. isb
  1552. dsb
  1553. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  1554. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  1555. <bb 4> [local count: 1073741824]:
  1556. # DEBUG ulNewBASEPRI => NULL
  1557. # DEBUG BEGIN_STMT
  1558. # DEBUG BEGIN_STMT
  1559. # DEBUG BEGIN_STMT
  1560. <bb 6> [local count: 1073741824]:
  1561. goto <bb 4>; [100.00%]
  1562. <bb 5> [local count: 123389]:
  1563. # DEBUG BEGIN_STMT
  1564. # DEBUG BEGIN_STMT
  1565. vPortEnterCritical ();
  1566. # DEBUG BEGIN_STMT
  1567. uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  1568. # DEBUG uxReturn => uxReturn_4
  1569. # DEBUG BEGIN_STMT
  1570. vPortExitCritical ();
  1571. # DEBUG BEGIN_STMT
  1572. return uxReturn_4;
  1573. }
  1574. xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer)
  1575. {
  1576. uint32_t ulOriginalBASEPRI;
  1577. uint32_t ulNewBASEPRI;
  1578. uint32_t ulNewBASEPRI;
  1579. uint32_t ulNewBASEPRI;
  1580. uint32_t ulNewBASEPRI;
  1581. int8_t * pcOriginalReadPosition;
  1582. BaseType_t xReturn;
  1583. long unsigned int _1;
  1584. long unsigned int _2;
  1585. long unsigned int _3;
  1586. <bb 2> [local count: 269344]:
  1587. # DEBUG BEGIN_STMT
  1588. # DEBUG BEGIN_STMT
  1589. # DEBUG BEGIN_STMT
  1590. # DEBUG BEGIN_STMT
  1591. # DEBUG pxQueue => xQueue_6(D)
  1592. # DEBUG BEGIN_STMT
  1593. if (xQueue_6(D) == 0B)
  1594. goto <bb 3>; [30.00%]
  1595. else
  1596. goto <bb 5>; [70.00%]
  1597. <bb 3> [local count: 80803]:
  1598. # DEBUG BEGIN_STMT
  1599. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1600. # DEBUG BEGIN_STMT
  1601. # DEBUG BEGIN_STMT
  1602. __asm__ __volatile__(" mov %0, %1
  1603. msr basepri, %0
  1604. isb
  1605. dsb
  1606. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  1607. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  1608. <bb 4> [local count: 808033481]:
  1609. # DEBUG ulNewBASEPRI => NULL
  1610. # DEBUG BEGIN_STMT
  1611. # DEBUG BEGIN_STMT
  1612. # DEBUG BEGIN_STMT
  1613. <bb 15> [local count: 808033481]:
  1614. goto <bb 4>; [100.00%]
  1615. <bb 5> [local count: 188541]:
  1616. # DEBUG BEGIN_STMT
  1617. # DEBUG BEGIN_STMT
  1618. if (pvBuffer_7(D) != 0B)
  1619. goto <bb 9>; [70.00%]
  1620. else
  1621. goto <bb 6>; [30.00%]
  1622. <bb 6> [local count: 56562]:
  1623. _1 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  1624. if (_1 == 0)
  1625. goto <bb 9>; [50.00%]
  1626. else
  1627. goto <bb 7>; [50.00%]
  1628. <bb 7> [local count: 28281]:
  1629. # DEBUG BEGIN_STMT
  1630. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1631. # DEBUG BEGIN_STMT
  1632. # DEBUG BEGIN_STMT
  1633. __asm__ __volatile__(" mov %0, %1
  1634. msr basepri, %0
  1635. isb
  1636. dsb
  1637. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  1638. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  1639. <bb 8> [local count: 282811719]:
  1640. # DEBUG ulNewBASEPRI => NULL
  1641. # DEBUG BEGIN_STMT
  1642. # DEBUG BEGIN_STMT
  1643. # DEBUG BEGIN_STMT
  1644. <bb 17> [local count: 282811719]:
  1645. goto <bb 8>; [100.00%]
  1646. <bb 9> [local count: 160260]:
  1647. # DEBUG BEGIN_STMT
  1648. # DEBUG BEGIN_STMT
  1649. _2 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  1650. if (_2 == 0)
  1651. goto <bb 10>; [67.00%]
  1652. else
  1653. goto <bb 12>; [33.00%]
  1654. <bb 10> [local count: 107374]:
  1655. # DEBUG BEGIN_STMT
  1656. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1657. # DEBUG BEGIN_STMT
  1658. # DEBUG BEGIN_STMT
  1659. __asm__ __volatile__(" mov %0, %1
  1660. msr basepri, %0
  1661. isb
  1662. dsb
  1663. " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
  1664. # DEBUG ulNewBASEPRI => ulNewBASEPRI_15
  1665. <bb 11> [local count: 1073741824]:
  1666. # DEBUG ulNewBASEPRI => NULL
  1667. # DEBUG BEGIN_STMT
  1668. # DEBUG BEGIN_STMT
  1669. # DEBUG BEGIN_STMT
  1670. <bb 16> [local count: 1073741824]:
  1671. goto <bb 11>; [100.00%]
  1672. <bb 12> [local count: 52886]:
  1673. # DEBUG BEGIN_STMT
  1674. # DEBUG BEGIN_STMT
  1675. vPortValidateInterruptPriority ();
  1676. # DEBUG BEGIN_STMT
  1677. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1678. # DEBUG BEGIN_STMT
  1679. # DEBUG BEGIN_STMT
  1680. __asm__ __volatile__(" mrs %0, basepri
  1681. mov %1, %2
  1682. msr basepri, %1
  1683. isb
  1684. dsb
  1685. " : "=r" ulOriginalBASEPRI_16, "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  1686. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  1687. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_16
  1688. # DEBUG BEGIN_STMT
  1689. # DEBUG ulNewBASEPRI => NULL
  1690. # DEBUG ulOriginalBASEPRI => NULL
  1691. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_16
  1692. # DEBUG BEGIN_STMT
  1693. _3 ={v} MEM[(struct Queue_t *)xQueue_6(D)].uxMessagesWaiting;
  1694. if (_3 != 0)
  1695. goto <bb 13>; [33.00%]
  1696. else
  1697. goto <bb 14>; [67.00%]
  1698. <bb 13> [local count: 17452]:
  1699. # DEBUG BEGIN_STMT
  1700. # DEBUG BEGIN_STMT
  1701. pcOriginalReadPosition_10 = MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom;
  1702. # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_10
  1703. # DEBUG BEGIN_STMT
  1704. prvCopyDataFromQueue (xQueue_6(D), pvBuffer_7(D));
  1705. # DEBUG BEGIN_STMT
  1706. MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_10;
  1707. # DEBUG BEGIN_STMT
  1708. # DEBUG xReturn => 1
  1709. <bb 14> [local count: 52886]:
  1710. # xReturn_4 = PHI <1(13), 0(12)>
  1711. # DEBUG xReturn => xReturn_4
  1712. # DEBUG BEGIN_STMT
  1713. # DEBUG BEGIN_STMT
  1714. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_16
  1715. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1716. # DEBUG BEGIN_STMT
  1717. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_16 : "memory");
  1718. # DEBUG ulNewMaskValue => NULL
  1719. # DEBUG BEGIN_STMT
  1720. return xReturn_4;
  1721. }
  1722. xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken)
  1723. {
  1724. uint32_t ulNewBASEPRI;
  1725. uint32_t ulOriginalBASEPRI;
  1726. uint32_t ulNewBASEPRI;
  1727. uint32_t ulNewBASEPRI;
  1728. uint32_t ulNewBASEPRI;
  1729. const int8_t cRxLock;
  1730. const UBaseType_t uxMessagesWaiting;
  1731. BaseType_t xReturn;
  1732. long unsigned int _1;
  1733. long unsigned int _2;
  1734. long unsigned int _3;
  1735. struct List_t * _4;
  1736. long int _5;
  1737. unsigned char cRxLock.28_6;
  1738. unsigned char _7;
  1739. signed char _8;
  1740. <bb 2> [local count: 357913]:
  1741. # DEBUG BEGIN_STMT
  1742. # DEBUG BEGIN_STMT
  1743. # DEBUG BEGIN_STMT
  1744. # DEBUG pxQueue => xQueue_11(D)
  1745. # DEBUG BEGIN_STMT
  1746. if (xQueue_11(D) == 0B)
  1747. goto <bb 3>; [30.00%]
  1748. else
  1749. goto <bb 5>; [70.00%]
  1750. <bb 3> [local count: 107374]:
  1751. # DEBUG BEGIN_STMT
  1752. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1753. # DEBUG BEGIN_STMT
  1754. # DEBUG BEGIN_STMT
  1755. __asm__ __volatile__(" mov %0, %1
  1756. msr basepri, %0
  1757. isb
  1758. dsb
  1759. " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory");
  1760. # DEBUG ulNewBASEPRI => ulNewBASEPRI_23
  1761. <bb 4> [local count: 1073741824]:
  1762. # DEBUG ulNewBASEPRI => NULL
  1763. # DEBUG BEGIN_STMT
  1764. # DEBUG BEGIN_STMT
  1765. # DEBUG BEGIN_STMT
  1766. <bb 21> [local count: 1073741824]:
  1767. goto <bb 4>; [100.00%]
  1768. <bb 5> [local count: 250539]:
  1769. # DEBUG BEGIN_STMT
  1770. # DEBUG BEGIN_STMT
  1771. if (pvBuffer_12(D) != 0B)
  1772. goto <bb 9>; [53.47%]
  1773. else
  1774. goto <bb 6>; [46.53%]
  1775. <bb 6> [local count: 116576]:
  1776. _1 = MEM[(struct Queue_t *)xQueue_11(D)].uxItemSize;
  1777. if (_1 == 0)
  1778. goto <bb 9>; [50.00%]
  1779. else
  1780. goto <bb 7>; [50.00%]
  1781. <bb 7> [local count: 58288]:
  1782. # DEBUG BEGIN_STMT
  1783. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1784. # DEBUG BEGIN_STMT
  1785. # DEBUG BEGIN_STMT
  1786. __asm__ __volatile__(" mov %0, %1
  1787. msr basepri, %0
  1788. isb
  1789. dsb
  1790. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  1791. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  1792. <bb 8> [local count: 582880751]:
  1793. # DEBUG ulNewBASEPRI => NULL
  1794. # DEBUG BEGIN_STMT
  1795. # DEBUG BEGIN_STMT
  1796. # DEBUG BEGIN_STMT
  1797. <bb 23> [local count: 582880751]:
  1798. goto <bb 8>; [100.00%]
  1799. <bb 9> [local count: 192251]:
  1800. # DEBUG BEGIN_STMT
  1801. # DEBUG BEGIN_STMT
  1802. vPortValidateInterruptPriority ();
  1803. # DEBUG BEGIN_STMT
  1804. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1805. # DEBUG BEGIN_STMT
  1806. # DEBUG BEGIN_STMT
  1807. __asm__ __volatile__(" mrs %0, basepri
  1808. mov %1, %2
  1809. msr basepri, %1
  1810. isb
  1811. dsb
  1812. " : "=r" ulOriginalBASEPRI_25, "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  1813. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  1814. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_25
  1815. # DEBUG BEGIN_STMT
  1816. # DEBUG ulNewBASEPRI => NULL
  1817. # DEBUG ulOriginalBASEPRI => NULL
  1818. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_25
  1819. # DEBUG BEGIN_STMT
  1820. uxMessagesWaiting_15 ={v} MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting;
  1821. # DEBUG uxMessagesWaiting => uxMessagesWaiting_15
  1822. # DEBUG BEGIN_STMT
  1823. if (uxMessagesWaiting_15 != 0)
  1824. goto <bb 10>; [33.00%]
  1825. else
  1826. goto <bb 20>; [67.00%]
  1827. <bb 10> [local count: 63443]:
  1828. # DEBUG BEGIN_STMT
  1829. cRxLock_16 ={v} MEM[(struct Queue_t *)xQueue_11(D)].cRxLock;
  1830. # DEBUG cRxLock => cRxLock_16
  1831. # DEBUG BEGIN_STMT
  1832. # DEBUG BEGIN_STMT
  1833. prvCopyDataFromQueue (xQueue_11(D), pvBuffer_12(D));
  1834. # DEBUG BEGIN_STMT
  1835. _2 = uxMessagesWaiting_15 + 4294967295;
  1836. MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting ={v} _2;
  1837. # DEBUG BEGIN_STMT
  1838. if (cRxLock_16 == -1)
  1839. goto <bb 11>; [34.00%]
  1840. else
  1841. goto <bb 15>; [66.00%]
  1842. <bb 11> [local count: 21571]:
  1843. # DEBUG BEGIN_STMT
  1844. _3 ={v} MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend.uxNumberOfItems;
  1845. if (_3 != 0)
  1846. goto <bb 12>; [33.00%]
  1847. else
  1848. goto <bb 20>; [67.00%]
  1849. <bb 12> [local count: 7118]:
  1850. # DEBUG BEGIN_STMT
  1851. _4 = &MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend;
  1852. _5 = xTaskRemoveFromEventList (_4);
  1853. if (_5 != 0)
  1854. goto <bb 13>; [50.00%]
  1855. else
  1856. goto <bb 20>; [50.00%]
  1857. <bb 13> [local count: 3559]:
  1858. # DEBUG BEGIN_STMT
  1859. if (pxHigherPriorityTaskWoken_21(D) != 0B)
  1860. goto <bb 14>; [70.00%]
  1861. else
  1862. goto <bb 20>; [30.00%]
  1863. <bb 14> [local count: 2491]:
  1864. # DEBUG BEGIN_STMT
  1865. *pxHigherPriorityTaskWoken_21(D) = 1;
  1866. goto <bb 20>; [100.00%]
  1867. <bb 15> [local count: 41872]:
  1868. # DEBUG BEGIN_STMT
  1869. if (cRxLock_16 == 127)
  1870. goto <bb 16>; [34.00%]
  1871. else
  1872. goto <bb 18>; [66.00%]
  1873. <bb 16> [local count: 14237]:
  1874. # DEBUG BEGIN_STMT
  1875. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1876. # DEBUG BEGIN_STMT
  1877. # DEBUG BEGIN_STMT
  1878. __asm__ __volatile__(" mov %0, %1
  1879. msr basepri, %0
  1880. isb
  1881. dsb
  1882. " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory");
  1883. # DEBUG ulNewBASEPRI => ulNewBASEPRI_27
  1884. <bb 17> [local count: 142366217]:
  1885. # DEBUG ulNewBASEPRI => NULL
  1886. # DEBUG BEGIN_STMT
  1887. # DEBUG BEGIN_STMT
  1888. # DEBUG BEGIN_STMT
  1889. <bb 22> [local count: 142366217]:
  1890. goto <bb 17>; [100.00%]
  1891. <bb 18> [local count: 27636]:
  1892. # DEBUG BEGIN_STMT
  1893. # DEBUG BEGIN_STMT
  1894. cRxLock.28_6 = (unsigned char) cRxLock_16;
  1895. _7 = cRxLock.28_6 + 1;
  1896. _8 = (signed char) _7;
  1897. MEM[(struct Queue_t *)xQueue_11(D)].cRxLock ={v} _8;
  1898. <bb 20> [local count: 178015]:
  1899. # xReturn_9 = PHI <1(18), 0(9), 1(14), 1(12), 1(13), 1(11)>
  1900. # DEBUG xReturn => xReturn_9
  1901. # DEBUG BEGIN_STMT
  1902. # DEBUG BEGIN_STMT
  1903. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_25
  1904. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1905. # DEBUG BEGIN_STMT
  1906. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_25 : "memory");
  1907. # DEBUG ulNewMaskValue => NULL
  1908. # DEBUG BEGIN_STMT
  1909. return xReturn_9;
  1910. }
  1911. xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
  1912. {
  1913. uint32_t ulNewBASEPRI;
  1914. uint32_t ulNewBASEPRI;
  1915. uint32_t ulNewBASEPRI;
  1916. const UBaseType_t uxMessagesWaiting;
  1917. int8_t * pcOriginalReadPosition;
  1918. struct TimeOut_t xTimeOut;
  1919. BaseType_t xEntryTimeSet;
  1920. long unsigned int _1;
  1921. long int _2;
  1922. long unsigned int xTicksToWait.24_3;
  1923. long unsigned int _4;
  1924. struct List_t * _5;
  1925. long int _6;
  1926. long unsigned int xTicksToWait.25_7;
  1927. signed char _8;
  1928. signed char _9;
  1929. long int _10;
  1930. long int _11;
  1931. struct List_t * _12;
  1932. long unsigned int xTicksToWait.26_13;
  1933. long int _14;
  1934. long int _15;
  1935. BaseType_t _18;
  1936. <bb 2> [local count: 357913]:
  1937. # DEBUG BEGIN_STMT
  1938. # DEBUG xEntryTimeSet => 0
  1939. # DEBUG BEGIN_STMT
  1940. # DEBUG BEGIN_STMT
  1941. # DEBUG BEGIN_STMT
  1942. # DEBUG pxQueue => xQueue_26(D)
  1943. # DEBUG BEGIN_STMT
  1944. if (xQueue_26(D) == 0B)
  1945. goto <bb 3>; [30.00%]
  1946. else
  1947. goto <bb 5>; [70.00%]
  1948. <bb 3> [local count: 107374]:
  1949. # DEBUG BEGIN_STMT
  1950. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1951. # DEBUG BEGIN_STMT
  1952. # DEBUG BEGIN_STMT
  1953. __asm__ __volatile__(" mov %0, %1
  1954. msr basepri, %0
  1955. isb
  1956. dsb
  1957. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  1958. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  1959. <bb 4> [local count: 1073741824]:
  1960. # DEBUG ulNewBASEPRI => NULL
  1961. # DEBUG BEGIN_STMT
  1962. # DEBUG BEGIN_STMT
  1963. # DEBUG BEGIN_STMT
  1964. goto <bb 4>; [100.00%]
  1965. <bb 5> [local count: 250539]:
  1966. # DEBUG BEGIN_STMT
  1967. # DEBUG BEGIN_STMT
  1968. if (pvBuffer_27(D) != 0B)
  1969. goto <bb 9>; [53.47%]
  1970. else
  1971. goto <bb 6>; [46.53%]
  1972. <bb 6> [local count: 116576]:
  1973. _1 = MEM[(struct Queue_t *)xQueue_26(D)].uxItemSize;
  1974. if (_1 == 0)
  1975. goto <bb 9>; [50.00%]
  1976. else
  1977. goto <bb 7>; [50.00%]
  1978. <bb 7> [local count: 58288]:
  1979. # DEBUG BEGIN_STMT
  1980. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1981. # DEBUG BEGIN_STMT
  1982. # DEBUG BEGIN_STMT
  1983. __asm__ __volatile__(" mov %0, %1
  1984. msr basepri, %0
  1985. isb
  1986. dsb
  1987. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  1988. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  1989. <bb 8> [local count: 582880751]:
  1990. # DEBUG ulNewBASEPRI => NULL
  1991. # DEBUG BEGIN_STMT
  1992. # DEBUG BEGIN_STMT
  1993. # DEBUG BEGIN_STMT
  1994. goto <bb 8>; [100.00%]
  1995. <bb 9> [local count: 192251]:
  1996. # DEBUG BEGIN_STMT
  1997. # DEBUG BEGIN_STMT
  1998. _2 = xTaskGetSchedulerState ();
  1999. if (_2 != 0)
  2000. goto <bb 10>; [50.00%]
  2001. else
  2002. goto <bb 11>; [50.00%]
  2003. <bb 10> [local count: 144189]:
  2004. # xEntryTimeSet_30 = PHI <0(9), 0(11)>
  2005. goto <bb 15>; [100.00%]
  2006. <bb 11> [local count: 96126]:
  2007. xTicksToWait.24_3 = xTicksToWait;
  2008. if (xTicksToWait.24_3 == 0)
  2009. goto <bb 10>; [50.00%]
  2010. else
  2011. goto <bb 12>; [50.00%]
  2012. <bb 12> [local count: 48063]:
  2013. # DEBUG BEGIN_STMT
  2014. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2015. # DEBUG BEGIN_STMT
  2016. # DEBUG BEGIN_STMT
  2017. __asm__ __volatile__(" mov %0, %1
  2018. msr basepri, %0
  2019. isb
  2020. dsb
  2021. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  2022. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  2023. <bb 13> [local count: 480629211]:
  2024. # DEBUG ulNewBASEPRI => NULL
  2025. # DEBUG BEGIN_STMT
  2026. # DEBUG BEGIN_STMT
  2027. # DEBUG BEGIN_STMT
  2028. goto <bb 13>; [100.00%]
  2029. <bb 14> [local count: 1478726]:
  2030. # xEntryTimeSet_44 = PHI <xEntryTimeSet_17(33), xEntryTimeSet_17(32), xEntryTimeSet_17(31), xEntryTimeSet_17(30)>
  2031. <bb 15> [local count: 1622915]:
  2032. # xEntryTimeSet_16 = PHI <xEntryTimeSet_30(10), xEntryTimeSet_44(14)>
  2033. # DEBUG xEntryTimeSet => xEntryTimeSet_16
  2034. # DEBUG BEGIN_STMT
  2035. # DEBUG BEGIN_STMT
  2036. # DEBUG BEGIN_STMT
  2037. vPortEnterCritical ();
  2038. # DEBUG BEGIN_STMT
  2039. uxMessagesWaiting_32 ={v} MEM[(struct Queue_t *)xQueue_26(D)].uxMessagesWaiting;
  2040. # DEBUG uxMessagesWaiting => uxMessagesWaiting_32
  2041. # DEBUG BEGIN_STMT
  2042. if (uxMessagesWaiting_32 != 0)
  2043. goto <bb 16>; [3.66%]
  2044. else
  2045. goto <bb 20>; [96.34%]
  2046. <bb 16> [local count: 59399]:
  2047. # DEBUG BEGIN_STMT
  2048. pcOriginalReadPosition_55 = MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom;
  2049. # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_55
  2050. # DEBUG BEGIN_STMT
  2051. prvCopyDataFromQueue (xQueue_26(D), pvBuffer_27(D));
  2052. # DEBUG BEGIN_STMT
  2053. # DEBUG BEGIN_STMT
  2054. MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_55;
  2055. # DEBUG BEGIN_STMT
  2056. _4 ={v} MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive.uxNumberOfItems;
  2057. if (_4 != 0)
  2058. goto <bb 17>; [33.00%]
  2059. else
  2060. goto <bb 19>; [67.00%]
  2061. <bb 17> [local count: 19602]:
  2062. # DEBUG BEGIN_STMT
  2063. _5 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  2064. _6 = xTaskRemoveFromEventList (_5);
  2065. if (_6 != 0)
  2066. goto <bb 18>; [50.00%]
  2067. else
  2068. goto <bb 19>; [50.00%]
  2069. <bb 18> [local count: 9801]:
  2070. # DEBUG BEGIN_STMT
  2071. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2072. # DEBUG BEGIN_STMT
  2073. __asm__ __volatile__("dsb" : : : "memory");
  2074. # DEBUG BEGIN_STMT
  2075. __asm__ __volatile__("isb");
  2076. # DEBUG BEGIN_STMT
  2077. <bb 19> [local count: 59399]:
  2078. # DEBUG BEGIN_STMT
  2079. # DEBUG BEGIN_STMT
  2080. vPortExitCritical ();
  2081. # DEBUG BEGIN_STMT
  2082. goto <bb 34>; [100.00%]
  2083. <bb 20> [local count: 1563516]:
  2084. # DEBUG BEGIN_STMT
  2085. xTicksToWait.25_7 = xTicksToWait;
  2086. if (xTicksToWait.25_7 == 0)
  2087. goto <bb 21>; [3.66%]
  2088. else
  2089. goto <bb 22>; [96.34%]
  2090. <bb 21> [local count: 57225]:
  2091. # DEBUG BEGIN_STMT
  2092. vPortExitCritical ();
  2093. # DEBUG BEGIN_STMT
  2094. # DEBUG BEGIN_STMT
  2095. goto <bb 34>; [100.00%]
  2096. <bb 22> [local count: 1506292]:
  2097. # DEBUG BEGIN_STMT
  2098. if (xEntryTimeSet_16 == 0)
  2099. goto <bb 23>; [33.00%]
  2100. else
  2101. goto <bb 24>; [67.00%]
  2102. <bb 23> [local count: 497076]:
  2103. # DEBUG BEGIN_STMT
  2104. vTaskInternalSetTimeOutState (&xTimeOut);
  2105. # DEBUG BEGIN_STMT
  2106. # DEBUG xEntryTimeSet => 1
  2107. <bb 24> [local count: 1506292]:
  2108. # xEntryTimeSet_17 = PHI <xEntryTimeSet_16(22), 1(23)>
  2109. # DEBUG xEntryTimeSet => xEntryTimeSet_17
  2110. # DEBUG BEGIN_STMT
  2111. # DEBUG BEGIN_STMT
  2112. vPortExitCritical ();
  2113. # DEBUG BEGIN_STMT
  2114. vTaskSuspendAll ();
  2115. # DEBUG BEGIN_STMT
  2116. vPortEnterCritical ();
  2117. # DEBUG BEGIN_STMT
  2118. _8 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cRxLock;
  2119. if (_8 == -1)
  2120. goto <bb 25>; [34.00%]
  2121. else
  2122. goto <bb 26>; [66.00%]
  2123. <bb 25> [local count: 512139]:
  2124. # DEBUG BEGIN_STMT
  2125. MEM[(struct Queue_t *)xQueue_26(D)].cRxLock ={v} 0;
  2126. <bb 26> [local count: 1506292]:
  2127. # DEBUG BEGIN_STMT
  2128. _9 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cTxLock;
  2129. if (_9 == -1)
  2130. goto <bb 27>; [34.00%]
  2131. else
  2132. goto <bb 28>; [66.00%]
  2133. <bb 27> [local count: 512139]:
  2134. # DEBUG BEGIN_STMT
  2135. MEM[(struct Queue_t *)xQueue_26(D)].cTxLock ={v} 0;
  2136. <bb 28> [local count: 1506292]:
  2137. # DEBUG BEGIN_STMT
  2138. vPortExitCritical ();
  2139. # DEBUG BEGIN_STMT
  2140. _10 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  2141. if (_10 == 0)
  2142. goto <bb 29>; [50.00%]
  2143. else
  2144. goto <bb 33>; [50.00%]
  2145. <bb 29> [local count: 753146]:
  2146. # DEBUG BEGIN_STMT
  2147. _11 = prvIsQueueEmpty (xQueue_26(D));
  2148. if (_11 != 0)
  2149. goto <bb 30>; [50.00%]
  2150. else
  2151. goto <bb 32>; [50.00%]
  2152. <bb 30> [local count: 376573]:
  2153. # DEBUG BEGIN_STMT
  2154. # DEBUG BEGIN_STMT
  2155. _12 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  2156. xTicksToWait.26_13 = xTicksToWait;
  2157. vTaskPlaceOnEventList (_12, xTicksToWait.26_13);
  2158. # DEBUG BEGIN_STMT
  2159. prvUnlockQueue (xQueue_26(D));
  2160. # DEBUG BEGIN_STMT
  2161. _14 = xTaskResumeAll ();
  2162. if (_14 == 0)
  2163. goto <bb 31>; [50.00%]
  2164. else
  2165. goto <bb 14>; [50.00%]
  2166. <bb 31> [local count: 188286]:
  2167. # DEBUG BEGIN_STMT
  2168. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2169. # DEBUG BEGIN_STMT
  2170. __asm__ __volatile__("dsb" : : : "memory");
  2171. # DEBUG BEGIN_STMT
  2172. __asm__ __volatile__("isb");
  2173. # DEBUG BEGIN_STMT
  2174. goto <bb 14>; [100.00%]
  2175. <bb 32> [local count: 376573]:
  2176. # DEBUG BEGIN_STMT
  2177. prvUnlockQueue (xQueue_26(D));
  2178. # DEBUG BEGIN_STMT
  2179. xTaskResumeAll ();
  2180. goto <bb 14>; [100.00%]
  2181. <bb 33> [local count: 753146]:
  2182. # DEBUG BEGIN_STMT
  2183. prvUnlockQueue (xQueue_26(D));
  2184. # DEBUG BEGIN_STMT
  2185. xTaskResumeAll ();
  2186. # DEBUG BEGIN_STMT
  2187. _15 = prvIsQueueEmpty (xQueue_26(D));
  2188. if (_15 != 0)
  2189. goto <bb 34>; [3.66%]
  2190. else
  2191. goto <bb 14>; [96.34%]
  2192. <bb 34> [local count: 144189]:
  2193. # _18 = PHI <1(19), 0(21), 0(33)>
  2194. xTimeOut ={v} {CLOBBER};
  2195. return _18;
  2196. }
  2197. xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait)
  2198. {
  2199. uint32_t ulNewBASEPRI;
  2200. uint32_t ulNewBASEPRI;
  2201. uint32_t ulNewBASEPRI;
  2202. uint32_t ulNewBASEPRI;
  2203. UBaseType_t uxHighestWaitingPriority;
  2204. const UBaseType_t uxSemaphoreCount;
  2205. BaseType_t xInheritanceOccurred;
  2206. struct TimeOut_t xTimeOut;
  2207. BaseType_t xEntryTimeSet;
  2208. long unsigned int _1;
  2209. long int _2;
  2210. long unsigned int xTicksToWait.19_3;
  2211. long unsigned int _4;
  2212. int8_t * _5;
  2213. struct tskTaskControlBlock * _6;
  2214. long unsigned int _7;
  2215. struct List_t * _8;
  2216. long int _9;
  2217. long unsigned int xTicksToWait.20_10;
  2218. signed char _11;
  2219. signed char _12;
  2220. long int _13;
  2221. long int _14;
  2222. int8_t * _15;
  2223. struct tskTaskControlBlock * _16;
  2224. struct List_t * _17;
  2225. long unsigned int xTicksToWait.21_18;
  2226. long int _19;
  2227. long int _20;
  2228. struct tskTaskControlBlock * _21;
  2229. BaseType_t _27;
  2230. <bb 2> [local count: 228942]:
  2231. # DEBUG BEGIN_STMT
  2232. # DEBUG xEntryTimeSet => 0
  2233. # DEBUG BEGIN_STMT
  2234. # DEBUG BEGIN_STMT
  2235. # DEBUG pxQueue => xQueue_38(D)
  2236. # DEBUG BEGIN_STMT
  2237. # DEBUG xInheritanceOccurred => 0
  2238. # DEBUG BEGIN_STMT
  2239. if (xQueue_38(D) == 0B)
  2240. goto <bb 3>; [30.00%]
  2241. else
  2242. goto <bb 5>; [70.00%]
  2243. <bb 3> [local count: 68683]:
  2244. # DEBUG BEGIN_STMT
  2245. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2246. # DEBUG BEGIN_STMT
  2247. # DEBUG BEGIN_STMT
  2248. __asm__ __volatile__(" mov %0, %1
  2249. msr basepri, %0
  2250. isb
  2251. dsb
  2252. " : "=r" ulNewBASEPRI_88 : "i" 16 : "memory");
  2253. # DEBUG ulNewBASEPRI => ulNewBASEPRI_88
  2254. <bb 4> [local count: 686828460]:
  2255. # DEBUG ulNewBASEPRI => NULL
  2256. # DEBUG BEGIN_STMT
  2257. # DEBUG BEGIN_STMT
  2258. # DEBUG BEGIN_STMT
  2259. goto <bb 4>; [100.00%]
  2260. <bb 5> [local count: 160260]:
  2261. # DEBUG BEGIN_STMT
  2262. # DEBUG BEGIN_STMT
  2263. _1 = MEM[(struct Queue_t *)xQueue_38(D)].uxItemSize;
  2264. if (_1 != 0)
  2265. goto <bb 6>; [67.00%]
  2266. else
  2267. goto <bb 8>; [33.00%]
  2268. <bb 6> [local count: 107374]:
  2269. # DEBUG BEGIN_STMT
  2270. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2271. # DEBUG BEGIN_STMT
  2272. # DEBUG BEGIN_STMT
  2273. __asm__ __volatile__(" mov %0, %1
  2274. msr basepri, %0
  2275. isb
  2276. dsb
  2277. " : "=r" ulNewBASEPRI_89 : "i" 16 : "memory");
  2278. # DEBUG ulNewBASEPRI => ulNewBASEPRI_89
  2279. <bb 7> [local count: 1073741824]:
  2280. # DEBUG ulNewBASEPRI => NULL
  2281. # DEBUG BEGIN_STMT
  2282. # DEBUG BEGIN_STMT
  2283. # DEBUG BEGIN_STMT
  2284. goto <bb 7>; [100.00%]
  2285. <bb 8> [local count: 52886]:
  2286. # DEBUG BEGIN_STMT
  2287. # DEBUG BEGIN_STMT
  2288. _2 = xTaskGetSchedulerState ();
  2289. if (_2 != 0)
  2290. goto <bb 10>; [50.00%]
  2291. else
  2292. goto <bb 9>; [50.00%]
  2293. <bb 9> [local count: 26443]:
  2294. xTicksToWait.19_3 = xTicksToWait;
  2295. if (xTicksToWait.19_3 == 0)
  2296. goto <bb 10>; [50.00%]
  2297. else
  2298. goto <bb 11>; [50.00%]
  2299. <bb 10> [local count: 39664]:
  2300. # xEntryTimeSet_40 = PHI <0(9), 0(8)>
  2301. # xInheritanceOccurred_64 = PHI <0(9), 0(8)>
  2302. goto <bb 14>; [100.00%]
  2303. <bb 11> [local count: 13221]:
  2304. # DEBUG BEGIN_STMT
  2305. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2306. # DEBUG BEGIN_STMT
  2307. # DEBUG BEGIN_STMT
  2308. __asm__ __volatile__(" mov %0, %1
  2309. msr basepri, %0
  2310. isb
  2311. dsb
  2312. " : "=r" ulNewBASEPRI_90 : "i" 16 : "memory");
  2313. # DEBUG ulNewBASEPRI => ulNewBASEPRI_90
  2314. <bb 12> [local count: 132214478]:
  2315. # DEBUG ulNewBASEPRI => NULL
  2316. # DEBUG BEGIN_STMT
  2317. # DEBUG BEGIN_STMT
  2318. # DEBUG BEGIN_STMT
  2319. goto <bb 12>; [100.00%]
  2320. <bb 13> [local count: 406777]:
  2321. # xEntryTimeSet_48 = PHI <xEntryTimeSet_23(39), xEntryTimeSet_23(38), xEntryTimeSet_23(37), xEntryTimeSet_23(36)>
  2322. # xInheritanceOccurred_39 = PHI <xInheritanceOccurred_24(39), xInheritanceOccurred_24(38), xInheritanceOccurred_25(37), xInheritanceOccurred_25(36)>
  2323. <bb 14> [local count: 446442]:
  2324. # xEntryTimeSet_22 = PHI <xEntryTimeSet_40(10), xEntryTimeSet_48(13)>
  2325. # xInheritanceOccurred_24 = PHI <xInheritanceOccurred_64(10), xInheritanceOccurred_39(13)>
  2326. # DEBUG xInheritanceOccurred => xInheritanceOccurred_24
  2327. # DEBUG xEntryTimeSet => xEntryTimeSet_22
  2328. # DEBUG BEGIN_STMT
  2329. # DEBUG BEGIN_STMT
  2330. # DEBUG BEGIN_STMT
  2331. vPortEnterCritical ();
  2332. # DEBUG BEGIN_STMT
  2333. uxSemaphoreCount_46 ={v} MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting;
  2334. # DEBUG uxSemaphoreCount => uxSemaphoreCount_46
  2335. # DEBUG BEGIN_STMT
  2336. if (uxSemaphoreCount_46 != 0)
  2337. goto <bb 15>; [3.66%]
  2338. else
  2339. goto <bb 21>; [96.34%]
  2340. <bb 15> [local count: 16340]:
  2341. # uxSemaphoreCount_26 = PHI <uxSemaphoreCount_46(14)>
  2342. # DEBUG BEGIN_STMT
  2343. # DEBUG BEGIN_STMT
  2344. _4 = uxSemaphoreCount_26 + 4294967295;
  2345. MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting ={v} _4;
  2346. # DEBUG BEGIN_STMT
  2347. _5 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  2348. if (_5 == 0B)
  2349. goto <bb 16>; [17.43%]
  2350. else
  2351. goto <bb 17>; [82.57%]
  2352. <bb 16> [local count: 2848]:
  2353. # DEBUG BEGIN_STMT
  2354. _6 = pvTaskIncrementMutexHeldCount ();
  2355. MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder = _6;
  2356. <bb 17> [local count: 16340]:
  2357. # DEBUG BEGIN_STMT
  2358. # DEBUG BEGIN_STMT
  2359. _7 ={v} MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend.uxNumberOfItems;
  2360. if (_7 != 0)
  2361. goto <bb 18>; [33.00%]
  2362. else
  2363. goto <bb 20>; [67.00%]
  2364. <bb 18> [local count: 5392]:
  2365. # DEBUG BEGIN_STMT
  2366. _8 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend;
  2367. _9 = xTaskRemoveFromEventList (_8);
  2368. if (_9 != 0)
  2369. goto <bb 19>; [50.00%]
  2370. else
  2371. goto <bb 20>; [50.00%]
  2372. <bb 19> [local count: 2696]:
  2373. # DEBUG BEGIN_STMT
  2374. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2375. # DEBUG BEGIN_STMT
  2376. __asm__ __volatile__("dsb" : : : "memory");
  2377. # DEBUG BEGIN_STMT
  2378. __asm__ __volatile__("isb");
  2379. # DEBUG BEGIN_STMT
  2380. <bb 20> [local count: 16340]:
  2381. # DEBUG BEGIN_STMT
  2382. # DEBUG BEGIN_STMT
  2383. vPortExitCritical ();
  2384. # DEBUG BEGIN_STMT
  2385. goto <bb 43>; [100.00%]
  2386. <bb 21> [local count: 430102]:
  2387. # DEBUG BEGIN_STMT
  2388. xTicksToWait.20_10 = xTicksToWait;
  2389. if (xTicksToWait.20_10 == 0)
  2390. goto <bb 22>; [3.66%]
  2391. else
  2392. goto <bb 26>; [96.34%]
  2393. <bb 22> [local count: 15742]:
  2394. # xInheritanceOccurred_43 = PHI <xInheritanceOccurred_24(21)>
  2395. # DEBUG BEGIN_STMT
  2396. if (xInheritanceOccurred_43 != 0)
  2397. goto <bb 23>; [79.76%]
  2398. else
  2399. goto <bb 25>; [20.24%]
  2400. <bb 23> [local count: 12556]:
  2401. # DEBUG BEGIN_STMT
  2402. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2403. # DEBUG BEGIN_STMT
  2404. # DEBUG BEGIN_STMT
  2405. __asm__ __volatile__(" mov %0, %1
  2406. msr basepri, %0
  2407. isb
  2408. dsb
  2409. " : "=r" ulNewBASEPRI_91 : "i" 16 : "memory");
  2410. # DEBUG ulNewBASEPRI => ulNewBASEPRI_91
  2411. <bb 24> [local count: 125556217]:
  2412. # DEBUG ulNewBASEPRI => NULL
  2413. # DEBUG BEGIN_STMT
  2414. # DEBUG BEGIN_STMT
  2415. # DEBUG BEGIN_STMT
  2416. goto <bb 24>; [100.00%]
  2417. <bb 25> [local count: 3186]:
  2418. # DEBUG BEGIN_STMT
  2419. # DEBUG BEGIN_STMT
  2420. vPortExitCritical ();
  2421. # DEBUG BEGIN_STMT
  2422. # DEBUG BEGIN_STMT
  2423. goto <bb 43>; [100.00%]
  2424. <bb 26> [local count: 414360]:
  2425. # DEBUG BEGIN_STMT
  2426. if (xEntryTimeSet_22 == 0)
  2427. goto <bb 27>; [33.00%]
  2428. else
  2429. goto <bb 28>; [67.00%]
  2430. <bb 27> [local count: 136739]:
  2431. # DEBUG BEGIN_STMT
  2432. vTaskInternalSetTimeOutState (&xTimeOut);
  2433. # DEBUG BEGIN_STMT
  2434. # DEBUG xEntryTimeSet => 1
  2435. <bb 28> [local count: 414360]:
  2436. # xEntryTimeSet_23 = PHI <xEntryTimeSet_22(26), 1(27)>
  2437. # DEBUG xEntryTimeSet => xEntryTimeSet_23
  2438. # DEBUG BEGIN_STMT
  2439. # DEBUG BEGIN_STMT
  2440. vPortExitCritical ();
  2441. # DEBUG BEGIN_STMT
  2442. vTaskSuspendAll ();
  2443. # DEBUG BEGIN_STMT
  2444. vPortEnterCritical ();
  2445. # DEBUG BEGIN_STMT
  2446. _11 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cRxLock;
  2447. if (_11 == -1)
  2448. goto <bb 29>; [34.00%]
  2449. else
  2450. goto <bb 30>; [66.00%]
  2451. <bb 29> [local count: 140882]:
  2452. # DEBUG BEGIN_STMT
  2453. MEM[(struct Queue_t *)xQueue_38(D)].cRxLock ={v} 0;
  2454. <bb 30> [local count: 414360]:
  2455. # DEBUG BEGIN_STMT
  2456. _12 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cTxLock;
  2457. if (_12 == -1)
  2458. goto <bb 31>; [34.00%]
  2459. else
  2460. goto <bb 32>; [66.00%]
  2461. <bb 31> [local count: 140882]:
  2462. # DEBUG BEGIN_STMT
  2463. MEM[(struct Queue_t *)xQueue_38(D)].cTxLock ={v} 0;
  2464. <bb 32> [local count: 414360]:
  2465. # DEBUG BEGIN_STMT
  2466. vPortExitCritical ();
  2467. # DEBUG BEGIN_STMT
  2468. _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  2469. if (_13 == 0)
  2470. goto <bb 33>; [50.00%]
  2471. else
  2472. goto <bb 39>; [50.00%]
  2473. <bb 33> [local count: 207180]:
  2474. # DEBUG BEGIN_STMT
  2475. _14 = prvIsQueueEmpty (xQueue_38(D));
  2476. if (_14 != 0)
  2477. goto <bb 34>; [67.00%]
  2478. else
  2479. goto <bb 38>; [33.00%]
  2480. <bb 34> [local count: 138811]:
  2481. # DEBUG BEGIN_STMT
  2482. # DEBUG BEGIN_STMT
  2483. _15 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  2484. if (_15 == 0B)
  2485. goto <bb 35>; [17.43%]
  2486. else
  2487. goto <bb 36>; [82.57%]
  2488. <bb 35> [local count: 24195]:
  2489. # DEBUG BEGIN_STMT
  2490. vPortEnterCritical ();
  2491. # DEBUG BEGIN_STMT
  2492. _16 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  2493. xInheritanceOccurred_70 = xTaskPriorityInherit (_16);
  2494. # DEBUG xInheritanceOccurred => xInheritanceOccurred_70
  2495. # DEBUG BEGIN_STMT
  2496. vPortExitCritical ();
  2497. <bb 36> [local count: 138811]:
  2498. # xInheritanceOccurred_25 = PHI <xInheritanceOccurred_24(34), xInheritanceOccurred_70(35)>
  2499. # DEBUG xInheritanceOccurred => xInheritanceOccurred_25
  2500. # DEBUG BEGIN_STMT
  2501. # DEBUG BEGIN_STMT
  2502. _17 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive;
  2503. xTicksToWait.21_18 = xTicksToWait;
  2504. vTaskPlaceOnEventList (_17, xTicksToWait.21_18);
  2505. # DEBUG BEGIN_STMT
  2506. prvUnlockQueue (xQueue_38(D));
  2507. # DEBUG BEGIN_STMT
  2508. _19 = xTaskResumeAll ();
  2509. if (_19 == 0)
  2510. goto <bb 37>; [50.00%]
  2511. else
  2512. goto <bb 13>; [50.00%]
  2513. <bb 37> [local count: 69405]:
  2514. # DEBUG BEGIN_STMT
  2515. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2516. # DEBUG BEGIN_STMT
  2517. __asm__ __volatile__("dsb" : : : "memory");
  2518. # DEBUG BEGIN_STMT
  2519. __asm__ __volatile__("isb");
  2520. # DEBUG BEGIN_STMT
  2521. goto <bb 13>; [100.00%]
  2522. <bb 38> [local count: 68369]:
  2523. # DEBUG BEGIN_STMT
  2524. prvUnlockQueue (xQueue_38(D));
  2525. # DEBUG BEGIN_STMT
  2526. xTaskResumeAll ();
  2527. goto <bb 13>; [100.00%]
  2528. <bb 39> [local count: 207180]:
  2529. # DEBUG BEGIN_STMT
  2530. prvUnlockQueue (xQueue_38(D));
  2531. # DEBUG BEGIN_STMT
  2532. xTaskResumeAll ();
  2533. # DEBUG BEGIN_STMT
  2534. _20 = prvIsQueueEmpty (xQueue_38(D));
  2535. if (_20 != 0)
  2536. goto <bb 40>; [3.66%]
  2537. else
  2538. goto <bb 13>; [96.34%]
  2539. <bb 40> [local count: 7583]:
  2540. # xInheritanceOccurred_44 = PHI <xInheritanceOccurred_24(39)>
  2541. # DEBUG BEGIN_STMT
  2542. if (xInheritanceOccurred_44 != 0)
  2543. goto <bb 41>; [33.00%]
  2544. else
  2545. goto <bb 42>; [67.00%]
  2546. <bb 41> [local count: 2502]:
  2547. # DEBUG BEGIN_STMT
  2548. vPortEnterCritical ();
  2549. # DEBUG BEGIN_STMT
  2550. # DEBUG BEGIN_STMT
  2551. uxHighestWaitingPriority_61 = prvGetDisinheritPriorityAfterTimeout (xQueue_38(D));
  2552. # DEBUG uxHighestWaitingPriority => uxHighestWaitingPriority_61
  2553. # DEBUG BEGIN_STMT
  2554. _21 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  2555. vTaskPriorityDisinheritAfterTimeout (_21, uxHighestWaitingPriority_61);
  2556. # DEBUG BEGIN_STMT
  2557. vPortExitCritical ();
  2558. <bb 42> [local count: 7583]:
  2559. # DEBUG BEGIN_STMT
  2560. # DEBUG BEGIN_STMT
  2561. <bb 43> [local count: 27109]:
  2562. # _27 = PHI <1(20), 0(25), 0(42)>
  2563. xTimeOut ={v} {CLOBBER};
  2564. return _27;
  2565. }
  2566. xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
  2567. {
  2568. uint32_t ulNewBASEPRI;
  2569. uint32_t ulNewBASEPRI;
  2570. uint32_t ulNewBASEPRI;
  2571. const UBaseType_t uxMessagesWaiting;
  2572. struct TimeOut_t xTimeOut;
  2573. BaseType_t xEntryTimeSet;
  2574. long unsigned int _1;
  2575. long int _2;
  2576. long unsigned int xTicksToWait.15_3;
  2577. long unsigned int _4;
  2578. long unsigned int _5;
  2579. struct List_t * _6;
  2580. long int _7;
  2581. long unsigned int xTicksToWait.16_8;
  2582. signed char _9;
  2583. signed char _10;
  2584. long int _11;
  2585. long int _12;
  2586. struct List_t * _13;
  2587. long unsigned int xTicksToWait.17_14;
  2588. long int _15;
  2589. long int _16;
  2590. BaseType_t _19;
  2591. <bb 2> [local count: 357913]:
  2592. # DEBUG BEGIN_STMT
  2593. # DEBUG xEntryTimeSet => 0
  2594. # DEBUG BEGIN_STMT
  2595. # DEBUG BEGIN_STMT
  2596. # DEBUG pxQueue => xQueue_27(D)
  2597. # DEBUG BEGIN_STMT
  2598. if (xQueue_27(D) == 0B)
  2599. goto <bb 3>; [30.00%]
  2600. else
  2601. goto <bb 5>; [70.00%]
  2602. <bb 3> [local count: 107374]:
  2603. # DEBUG BEGIN_STMT
  2604. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2605. # DEBUG BEGIN_STMT
  2606. # DEBUG BEGIN_STMT
  2607. __asm__ __volatile__(" mov %0, %1
  2608. msr basepri, %0
  2609. isb
  2610. dsb
  2611. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  2612. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  2613. <bb 4> [local count: 1073741824]:
  2614. # DEBUG ulNewBASEPRI => NULL
  2615. # DEBUG BEGIN_STMT
  2616. # DEBUG BEGIN_STMT
  2617. # DEBUG BEGIN_STMT
  2618. goto <bb 4>; [100.00%]
  2619. <bb 5> [local count: 250539]:
  2620. # DEBUG BEGIN_STMT
  2621. # DEBUG BEGIN_STMT
  2622. if (pvBuffer_28(D) != 0B)
  2623. goto <bb 9>; [53.47%]
  2624. else
  2625. goto <bb 6>; [46.53%]
  2626. <bb 6> [local count: 116576]:
  2627. _1 = MEM[(struct Queue_t *)xQueue_27(D)].uxItemSize;
  2628. if (_1 == 0)
  2629. goto <bb 9>; [50.00%]
  2630. else
  2631. goto <bb 7>; [50.00%]
  2632. <bb 7> [local count: 58288]:
  2633. # DEBUG BEGIN_STMT
  2634. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2635. # DEBUG BEGIN_STMT
  2636. # DEBUG BEGIN_STMT
  2637. __asm__ __volatile__(" mov %0, %1
  2638. msr basepri, %0
  2639. isb
  2640. dsb
  2641. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  2642. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  2643. <bb 8> [local count: 582880751]:
  2644. # DEBUG ulNewBASEPRI => NULL
  2645. # DEBUG BEGIN_STMT
  2646. # DEBUG BEGIN_STMT
  2647. # DEBUG BEGIN_STMT
  2648. goto <bb 8>; [100.00%]
  2649. <bb 9> [local count: 192251]:
  2650. # DEBUG BEGIN_STMT
  2651. # DEBUG BEGIN_STMT
  2652. _2 = xTaskGetSchedulerState ();
  2653. if (_2 != 0)
  2654. goto <bb 10>; [50.00%]
  2655. else
  2656. goto <bb 11>; [50.00%]
  2657. <bb 10> [local count: 144189]:
  2658. # xEntryTimeSet_32 = PHI <0(9), 0(11)>
  2659. goto <bb 15>; [100.00%]
  2660. <bb 11> [local count: 96126]:
  2661. xTicksToWait.15_3 = xTicksToWait;
  2662. if (xTicksToWait.15_3 == 0)
  2663. goto <bb 10>; [50.00%]
  2664. else
  2665. goto <bb 12>; [50.00%]
  2666. <bb 12> [local count: 48063]:
  2667. # DEBUG BEGIN_STMT
  2668. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2669. # DEBUG BEGIN_STMT
  2670. # DEBUG BEGIN_STMT
  2671. __asm__ __volatile__(" mov %0, %1
  2672. msr basepri, %0
  2673. isb
  2674. dsb
  2675. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  2676. # DEBUG ulNewBASEPRI => ulNewBASEPRI_67
  2677. <bb 13> [local count: 480629211]:
  2678. # DEBUG ulNewBASEPRI => NULL
  2679. # DEBUG BEGIN_STMT
  2680. # DEBUG BEGIN_STMT
  2681. # DEBUG BEGIN_STMT
  2682. goto <bb 13>; [100.00%]
  2683. <bb 14> [local count: 1478726]:
  2684. # xEntryTimeSet_46 = PHI <xEntryTimeSet_18(33), xEntryTimeSet_18(32), xEntryTimeSet_18(31), xEntryTimeSet_18(30)>
  2685. <bb 15> [local count: 1622915]:
  2686. # xEntryTimeSet_17 = PHI <xEntryTimeSet_32(10), xEntryTimeSet_46(14)>
  2687. # DEBUG xEntryTimeSet => xEntryTimeSet_17
  2688. # DEBUG BEGIN_STMT
  2689. # DEBUG BEGIN_STMT
  2690. # DEBUG BEGIN_STMT
  2691. vPortEnterCritical ();
  2692. # DEBUG BEGIN_STMT
  2693. uxMessagesWaiting_34 ={v} MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting;
  2694. # DEBUG uxMessagesWaiting => uxMessagesWaiting_34
  2695. # DEBUG BEGIN_STMT
  2696. if (uxMessagesWaiting_34 != 0)
  2697. goto <bb 16>; [3.66%]
  2698. else
  2699. goto <bb 20>; [96.34%]
  2700. <bb 16> [local count: 59399]:
  2701. # uxMessagesWaiting_31 = PHI <uxMessagesWaiting_34(15)>
  2702. # DEBUG BEGIN_STMT
  2703. prvCopyDataFromQueue (xQueue_27(D), pvBuffer_28(D));
  2704. # DEBUG BEGIN_STMT
  2705. # DEBUG BEGIN_STMT
  2706. _4 = uxMessagesWaiting_31 + 4294967295;
  2707. MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting ={v} _4;
  2708. # DEBUG BEGIN_STMT
  2709. _5 ={v} MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend.uxNumberOfItems;
  2710. if (_5 != 0)
  2711. goto <bb 17>; [33.00%]
  2712. else
  2713. goto <bb 19>; [67.00%]
  2714. <bb 17> [local count: 19602]:
  2715. # DEBUG BEGIN_STMT
  2716. _6 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend;
  2717. _7 = xTaskRemoveFromEventList (_6);
  2718. if (_7 != 0)
  2719. goto <bb 18>; [50.00%]
  2720. else
  2721. goto <bb 19>; [50.00%]
  2722. <bb 18> [local count: 9801]:
  2723. # DEBUG BEGIN_STMT
  2724. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2725. # DEBUG BEGIN_STMT
  2726. __asm__ __volatile__("dsb" : : : "memory");
  2727. # DEBUG BEGIN_STMT
  2728. __asm__ __volatile__("isb");
  2729. # DEBUG BEGIN_STMT
  2730. <bb 19> [local count: 59399]:
  2731. # DEBUG BEGIN_STMT
  2732. # DEBUG BEGIN_STMT
  2733. vPortExitCritical ();
  2734. # DEBUG BEGIN_STMT
  2735. goto <bb 34>; [100.00%]
  2736. <bb 20> [local count: 1563516]:
  2737. # DEBUG BEGIN_STMT
  2738. xTicksToWait.16_8 = xTicksToWait;
  2739. if (xTicksToWait.16_8 == 0)
  2740. goto <bb 21>; [3.66%]
  2741. else
  2742. goto <bb 22>; [96.34%]
  2743. <bb 21> [local count: 57225]:
  2744. # DEBUG BEGIN_STMT
  2745. vPortExitCritical ();
  2746. # DEBUG BEGIN_STMT
  2747. # DEBUG BEGIN_STMT
  2748. goto <bb 34>; [100.00%]
  2749. <bb 22> [local count: 1506292]:
  2750. # DEBUG BEGIN_STMT
  2751. if (xEntryTimeSet_17 == 0)
  2752. goto <bb 23>; [33.00%]
  2753. else
  2754. goto <bb 24>; [67.00%]
  2755. <bb 23> [local count: 497076]:
  2756. # DEBUG BEGIN_STMT
  2757. vTaskInternalSetTimeOutState (&xTimeOut);
  2758. # DEBUG BEGIN_STMT
  2759. # DEBUG xEntryTimeSet => 1
  2760. <bb 24> [local count: 1506292]:
  2761. # xEntryTimeSet_18 = PHI <xEntryTimeSet_17(22), 1(23)>
  2762. # DEBUG xEntryTimeSet => xEntryTimeSet_18
  2763. # DEBUG BEGIN_STMT
  2764. # DEBUG BEGIN_STMT
  2765. vPortExitCritical ();
  2766. # DEBUG BEGIN_STMT
  2767. vTaskSuspendAll ();
  2768. # DEBUG BEGIN_STMT
  2769. vPortEnterCritical ();
  2770. # DEBUG BEGIN_STMT
  2771. _9 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cRxLock;
  2772. if (_9 == -1)
  2773. goto <bb 25>; [34.00%]
  2774. else
  2775. goto <bb 26>; [66.00%]
  2776. <bb 25> [local count: 512139]:
  2777. # DEBUG BEGIN_STMT
  2778. MEM[(struct Queue_t *)xQueue_27(D)].cRxLock ={v} 0;
  2779. <bb 26> [local count: 1506292]:
  2780. # DEBUG BEGIN_STMT
  2781. _10 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cTxLock;
  2782. if (_10 == -1)
  2783. goto <bb 27>; [34.00%]
  2784. else
  2785. goto <bb 28>; [66.00%]
  2786. <bb 27> [local count: 512139]:
  2787. # DEBUG BEGIN_STMT
  2788. MEM[(struct Queue_t *)xQueue_27(D)].cTxLock ={v} 0;
  2789. <bb 28> [local count: 1506292]:
  2790. # DEBUG BEGIN_STMT
  2791. vPortExitCritical ();
  2792. # DEBUG BEGIN_STMT
  2793. _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  2794. if (_11 == 0)
  2795. goto <bb 29>; [50.00%]
  2796. else
  2797. goto <bb 33>; [50.00%]
  2798. <bb 29> [local count: 753146]:
  2799. # DEBUG BEGIN_STMT
  2800. _12 = prvIsQueueEmpty (xQueue_27(D));
  2801. if (_12 != 0)
  2802. goto <bb 30>; [50.00%]
  2803. else
  2804. goto <bb 32>; [50.00%]
  2805. <bb 30> [local count: 376573]:
  2806. # DEBUG BEGIN_STMT
  2807. # DEBUG BEGIN_STMT
  2808. _13 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToReceive;
  2809. xTicksToWait.17_14 = xTicksToWait;
  2810. vTaskPlaceOnEventList (_13, xTicksToWait.17_14);
  2811. # DEBUG BEGIN_STMT
  2812. prvUnlockQueue (xQueue_27(D));
  2813. # DEBUG BEGIN_STMT
  2814. _15 = xTaskResumeAll ();
  2815. if (_15 == 0)
  2816. goto <bb 31>; [50.00%]
  2817. else
  2818. goto <bb 14>; [50.00%]
  2819. <bb 31> [local count: 188286]:
  2820. # DEBUG BEGIN_STMT
  2821. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2822. # DEBUG BEGIN_STMT
  2823. __asm__ __volatile__("dsb" : : : "memory");
  2824. # DEBUG BEGIN_STMT
  2825. __asm__ __volatile__("isb");
  2826. # DEBUG BEGIN_STMT
  2827. goto <bb 14>; [100.00%]
  2828. <bb 32> [local count: 376573]:
  2829. # DEBUG BEGIN_STMT
  2830. prvUnlockQueue (xQueue_27(D));
  2831. # DEBUG BEGIN_STMT
  2832. xTaskResumeAll ();
  2833. goto <bb 14>; [100.00%]
  2834. <bb 33> [local count: 753146]:
  2835. # DEBUG BEGIN_STMT
  2836. prvUnlockQueue (xQueue_27(D));
  2837. # DEBUG BEGIN_STMT
  2838. xTaskResumeAll ();
  2839. # DEBUG BEGIN_STMT
  2840. _16 = prvIsQueueEmpty (xQueue_27(D));
  2841. if (_16 != 0)
  2842. goto <bb 34>; [3.66%]
  2843. else
  2844. goto <bb 14>; [96.34%]
  2845. <bb 34> [local count: 144189]:
  2846. # _19 = PHI <1(19), 0(21), 0(33)>
  2847. xTimeOut ={v} {CLOBBER};
  2848. return _19;
  2849. }
  2850. xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken)
  2851. {
  2852. uint32_t ulNewBASEPRI;
  2853. uint32_t ulOriginalBASEPRI;
  2854. uint32_t ulNewBASEPRI;
  2855. uint32_t ulNewBASEPRI;
  2856. uint32_t ulNewBASEPRI;
  2857. uint32_t ulNewBASEPRI;
  2858. const int8_t cTxLock;
  2859. const UBaseType_t uxMessagesWaiting;
  2860. BaseType_t xReturn;
  2861. long unsigned int _1;
  2862. int8_t * _2;
  2863. struct tskTaskControlBlock * _3;
  2864. long unsigned int _4;
  2865. long unsigned int _5;
  2866. long unsigned int _6;
  2867. struct List_t * _7;
  2868. long int _8;
  2869. unsigned char cTxLock.12_9;
  2870. unsigned char _10;
  2871. signed char _11;
  2872. <bb 2> [local count: 306783]:
  2873. # DEBUG BEGIN_STMT
  2874. # DEBUG BEGIN_STMT
  2875. # DEBUG BEGIN_STMT
  2876. # DEBUG pxQueue => xQueue_14(D)
  2877. # DEBUG BEGIN_STMT
  2878. if (xQueue_14(D) == 0B)
  2879. goto <bb 3>; [30.00%]
  2880. else
  2881. goto <bb 5>; [70.00%]
  2882. <bb 3> [local count: 92035]:
  2883. # DEBUG BEGIN_STMT
  2884. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2885. # DEBUG BEGIN_STMT
  2886. # DEBUG BEGIN_STMT
  2887. __asm__ __volatile__(" mov %0, %1
  2888. msr basepri, %0
  2889. isb
  2890. dsb
  2891. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  2892. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  2893. <bb 4> [local count: 920350133]:
  2894. # DEBUG ulNewBASEPRI => NULL
  2895. # DEBUG BEGIN_STMT
  2896. # DEBUG BEGIN_STMT
  2897. # DEBUG BEGIN_STMT
  2898. <bb 24> [local count: 920350133]:
  2899. goto <bb 4>; [100.00%]
  2900. <bb 5> [local count: 214748]:
  2901. # DEBUG BEGIN_STMT
  2902. # DEBUG BEGIN_STMT
  2903. _1 = MEM[(struct Queue_t *)xQueue_14(D)].uxItemSize;
  2904. if (_1 != 0)
  2905. goto <bb 6>; [50.00%]
  2906. else
  2907. goto <bb 8>; [50.00%]
  2908. <bb 6> [local count: 107374]:
  2909. # DEBUG BEGIN_STMT
  2910. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2911. # DEBUG BEGIN_STMT
  2912. # DEBUG BEGIN_STMT
  2913. __asm__ __volatile__(" mov %0, %1
  2914. msr basepri, %0
  2915. isb
  2916. dsb
  2917. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  2918. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  2919. <bb 7> [local count: 1073741823]:
  2920. # DEBUG ulNewBASEPRI => NULL
  2921. # DEBUG BEGIN_STMT
  2922. # DEBUG BEGIN_STMT
  2923. # DEBUG BEGIN_STMT
  2924. <bb 25> [local count: 1073741824]:
  2925. goto <bb 7>; [100.00%]
  2926. <bb 8> [local count: 107374]:
  2927. # DEBUG BEGIN_STMT
  2928. # DEBUG BEGIN_STMT
  2929. _2 = MEM[(struct Queue_t *)xQueue_14(D)].pcHead;
  2930. if (_2 != 0B)
  2931. goto <bb 12>; [53.47%]
  2932. else
  2933. goto <bb 9>; [46.53%]
  2934. <bb 9> [local count: 49961]:
  2935. _3 = MEM[(struct Queue_t *)xQueue_14(D)].u.xSemaphore.xMutexHolder;
  2936. if (_3 == 0B)
  2937. goto <bb 12>; [30.00%]
  2938. else
  2939. goto <bb 10>; [70.00%]
  2940. <bb 10> [local count: 34973]:
  2941. # DEBUG BEGIN_STMT
  2942. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2943. # DEBUG BEGIN_STMT
  2944. # DEBUG BEGIN_STMT
  2945. __asm__ __volatile__(" mov %0, %1
  2946. msr basepri, %0
  2947. isb
  2948. dsb
  2949. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  2950. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  2951. <bb 11> [local count: 349728449]:
  2952. # DEBUG ulNewBASEPRI => NULL
  2953. # DEBUG BEGIN_STMT
  2954. # DEBUG BEGIN_STMT
  2955. # DEBUG BEGIN_STMT
  2956. <bb 27> [local count: 349728449]:
  2957. goto <bb 11>; [100.00%]
  2958. <bb 12> [local count: 72401]:
  2959. # DEBUG BEGIN_STMT
  2960. # DEBUG BEGIN_STMT
  2961. vPortValidateInterruptPriority ();
  2962. # DEBUG BEGIN_STMT
  2963. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  2964. # DEBUG BEGIN_STMT
  2965. # DEBUG BEGIN_STMT
  2966. __asm__ __volatile__(" mrs %0, basepri
  2967. mov %1, %2
  2968. msr basepri, %1
  2969. isb
  2970. dsb
  2971. " : "=r" ulOriginalBASEPRI_27, "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  2972. # DEBUG ulNewBASEPRI => ulNewBASEPRI_28
  2973. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_27
  2974. # DEBUG BEGIN_STMT
  2975. # DEBUG ulNewBASEPRI => NULL
  2976. # DEBUG ulOriginalBASEPRI => NULL
  2977. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_27
  2978. # DEBUG BEGIN_STMT
  2979. uxMessagesWaiting_17 ={v} MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting;
  2980. # DEBUG uxMessagesWaiting => uxMessagesWaiting_17
  2981. # DEBUG BEGIN_STMT
  2982. _4 = MEM[(struct Queue_t *)xQueue_14(D)].uxLength;
  2983. if (_4 > uxMessagesWaiting_17)
  2984. goto <bb 13>; [50.00%]
  2985. else
  2986. goto <bb 23>; [50.00%]
  2987. <bb 13> [local count: 36201]:
  2988. # DEBUG BEGIN_STMT
  2989. cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_14(D)].cTxLock;
  2990. # DEBUG cTxLock => cTxLock_18
  2991. # DEBUG BEGIN_STMT
  2992. # DEBUG BEGIN_STMT
  2993. _5 = uxMessagesWaiting_17 + 1;
  2994. MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting ={v} _5;
  2995. # DEBUG BEGIN_STMT
  2996. if (cTxLock_18 == -1)
  2997. goto <bb 14>; [34.00%]
  2998. else
  2999. goto <bb 18>; [66.00%]
  3000. <bb 14> [local count: 12308]:
  3001. # DEBUG BEGIN_STMT
  3002. _6 ={v} MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive.uxNumberOfItems;
  3003. if (_6 != 0)
  3004. goto <bb 15>; [33.00%]
  3005. else
  3006. goto <bb 23>; [67.00%]
  3007. <bb 15> [local count: 4062]:
  3008. # DEBUG BEGIN_STMT
  3009. _7 = &MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive;
  3010. _8 = xTaskRemoveFromEventList (_7);
  3011. if (_8 != 0)
  3012. goto <bb 16>; [50.00%]
  3013. else
  3014. goto <bb 23>; [50.00%]
  3015. <bb 16> [local count: 2031]:
  3016. # DEBUG BEGIN_STMT
  3017. if (pxHigherPriorityTaskWoken_22(D) != 0B)
  3018. goto <bb 17>; [70.00%]
  3019. else
  3020. goto <bb 23>; [30.00%]
  3021. <bb 17> [local count: 1422]:
  3022. # DEBUG BEGIN_STMT
  3023. *pxHigherPriorityTaskWoken_22(D) = 1;
  3024. goto <bb 23>; [100.00%]
  3025. <bb 18> [local count: 23892]:
  3026. # DEBUG BEGIN_STMT
  3027. if (cTxLock_18 == 127)
  3028. goto <bb 19>; [34.00%]
  3029. else
  3030. goto <bb 21>; [66.00%]
  3031. <bb 19> [local count: 8123]:
  3032. # DEBUG BEGIN_STMT
  3033. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3034. # DEBUG BEGIN_STMT
  3035. # DEBUG BEGIN_STMT
  3036. __asm__ __volatile__(" mov %0, %1
  3037. msr basepri, %0
  3038. isb
  3039. dsb
  3040. " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  3041. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  3042. <bb 20> [local count: 81234300]:
  3043. # DEBUG ulNewBASEPRI => NULL
  3044. # DEBUG BEGIN_STMT
  3045. # DEBUG BEGIN_STMT
  3046. # DEBUG BEGIN_STMT
  3047. <bb 26> [local count: 81234300]:
  3048. goto <bb 20>; [100.00%]
  3049. <bb 21> [local count: 15769]:
  3050. # DEBUG BEGIN_STMT
  3051. # DEBUG BEGIN_STMT
  3052. cTxLock.12_9 = (unsigned char) cTxLock_18;
  3053. _10 = cTxLock.12_9 + 1;
  3054. _11 = (signed char) _10;
  3055. MEM[(struct Queue_t *)xQueue_14(D)].cTxLock ={v} _11;
  3056. <bb 23> [local count: 64278]:
  3057. # xReturn_12 = PHI <1(21), 0(12), 1(17), 1(15), 1(16), 1(14)>
  3058. # DEBUG xReturn => xReturn_12
  3059. # DEBUG BEGIN_STMT
  3060. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_27
  3061. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  3062. # DEBUG BEGIN_STMT
  3063. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_27 : "memory");
  3064. # DEBUG ulNewMaskValue => NULL
  3065. # DEBUG BEGIN_STMT
  3066. return xReturn_12;
  3067. }
  3068. xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition)
  3069. {
  3070. uint32_t ulNewBASEPRI;
  3071. uint32_t ulOriginalBASEPRI;
  3072. uint32_t ulNewBASEPRI;
  3073. uint32_t ulNewBASEPRI;
  3074. uint32_t ulNewBASEPRI;
  3075. uint32_t ulNewBASEPRI;
  3076. const UBaseType_t uxPreviousMessagesWaiting;
  3077. const int8_t cTxLock;
  3078. BaseType_t xReturn;
  3079. long unsigned int _1;
  3080. long unsigned int _2;
  3081. long unsigned int _3;
  3082. long unsigned int _4;
  3083. long unsigned int _5;
  3084. struct List_t * _6;
  3085. long int _7;
  3086. unsigned char cTxLock.10_8;
  3087. unsigned char _9;
  3088. signed char _10;
  3089. <bb 2> [local count: 357913]:
  3090. # DEBUG BEGIN_STMT
  3091. # DEBUG BEGIN_STMT
  3092. # DEBUG BEGIN_STMT
  3093. # DEBUG pxQueue => xQueue_13(D)
  3094. # DEBUG BEGIN_STMT
  3095. if (xQueue_13(D) == 0B)
  3096. goto <bb 3>; [30.00%]
  3097. else
  3098. goto <bb 5>; [70.00%]
  3099. <bb 3> [local count: 107374]:
  3100. # DEBUG BEGIN_STMT
  3101. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3102. # DEBUG BEGIN_STMT
  3103. # DEBUG BEGIN_STMT
  3104. __asm__ __volatile__(" mov %0, %1
  3105. msr basepri, %0
  3106. isb
  3107. dsb
  3108. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  3109. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  3110. <bb 4> [local count: 1073741824]:
  3111. # DEBUG ulNewBASEPRI => NULL
  3112. # DEBUG BEGIN_STMT
  3113. # DEBUG BEGIN_STMT
  3114. # DEBUG BEGIN_STMT
  3115. <bb 26> [local count: 1073741824]:
  3116. goto <bb 4>; [100.00%]
  3117. <bb 5> [local count: 250539]:
  3118. # DEBUG BEGIN_STMT
  3119. # DEBUG BEGIN_STMT
  3120. if (pvItemToQueue_14(D) != 0B)
  3121. goto <bb 9>; [70.00%]
  3122. else
  3123. goto <bb 6>; [30.00%]
  3124. <bb 6> [local count: 75162]:
  3125. _1 = MEM[(struct Queue_t *)xQueue_13(D)].uxItemSize;
  3126. if (_1 == 0)
  3127. goto <bb 9>; [50.00%]
  3128. else
  3129. goto <bb 7>; [50.00%]
  3130. <bb 7> [local count: 37581]:
  3131. # DEBUG BEGIN_STMT
  3132. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3133. # DEBUG BEGIN_STMT
  3134. # DEBUG BEGIN_STMT
  3135. __asm__ __volatile__(" mov %0, %1
  3136. msr basepri, %0
  3137. isb
  3138. dsb
  3139. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  3140. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  3141. <bb 8> [local count: 375809639]:
  3142. # DEBUG ulNewBASEPRI => NULL
  3143. # DEBUG BEGIN_STMT
  3144. # DEBUG BEGIN_STMT
  3145. # DEBUG BEGIN_STMT
  3146. <bb 29> [local count: 375809639]:
  3147. goto <bb 8>; [100.00%]
  3148. <bb 9> [local count: 212958]:
  3149. # DEBUG BEGIN_STMT
  3150. # DEBUG BEGIN_STMT
  3151. if (xCopyPosition_16(D) != 2)
  3152. goto <bb 13>; [48.88%]
  3153. else
  3154. goto <bb 10>; [51.12%]
  3155. <bb 10> [local count: 108864]:
  3156. _2 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  3157. if (_2 == 1)
  3158. goto <bb 13>; [34.00%]
  3159. else
  3160. goto <bb 11>; [66.00%]
  3161. <bb 11> [local count: 71850]:
  3162. # DEBUG BEGIN_STMT
  3163. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3164. # DEBUG BEGIN_STMT
  3165. # DEBUG BEGIN_STMT
  3166. __asm__ __volatile__(" mov %0, %1
  3167. msr basepri, %0
  3168. isb
  3169. dsb
  3170. " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory");
  3171. # DEBUG ulNewBASEPRI => ulNewBASEPRI_27
  3172. <bb 12> [local count: 718505940]:
  3173. # DEBUG ulNewBASEPRI => NULL
  3174. # DEBUG BEGIN_STMT
  3175. # DEBUG BEGIN_STMT
  3176. # DEBUG BEGIN_STMT
  3177. <bb 28> [local count: 718505940]:
  3178. goto <bb 12>; [100.00%]
  3179. <bb 13> [local count: 141108]:
  3180. # DEBUG BEGIN_STMT
  3181. # DEBUG BEGIN_STMT
  3182. vPortValidateInterruptPriority ();
  3183. # DEBUG BEGIN_STMT
  3184. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  3185. # DEBUG BEGIN_STMT
  3186. # DEBUG BEGIN_STMT
  3187. __asm__ __volatile__(" mrs %0, basepri
  3188. mov %1, %2
  3189. msr basepri, %1
  3190. isb
  3191. dsb
  3192. " : "=r" ulOriginalBASEPRI_28, "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  3193. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  3194. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_28
  3195. # DEBUG BEGIN_STMT
  3196. # DEBUG ulNewBASEPRI => NULL
  3197. # DEBUG ulOriginalBASEPRI => NULL
  3198. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_28
  3199. # DEBUG BEGIN_STMT
  3200. _3 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  3201. _4 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  3202. if (_3 < _4)
  3203. goto <bb 15>; [33.00%]
  3204. else
  3205. goto <bb 14>; [67.00%]
  3206. <bb 14> [local count: 94542]:
  3207. if (xCopyPosition_16(D) == 2)
  3208. goto <bb 15>; [34.00%]
  3209. else
  3210. goto <bb 25>; [66.00%]
  3211. <bb 15> [local count: 78710]:
  3212. # DEBUG BEGIN_STMT
  3213. cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_13(D)].cTxLock;
  3214. # DEBUG cTxLock => cTxLock_18
  3215. # DEBUG BEGIN_STMT
  3216. uxPreviousMessagesWaiting_19 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  3217. # DEBUG uxPreviousMessagesWaiting => uxPreviousMessagesWaiting_19
  3218. # DEBUG BEGIN_STMT
  3219. # DEBUG BEGIN_STMT
  3220. prvCopyDataToQueue (xQueue_13(D), pvItemToQueue_14(D), xCopyPosition_16(D));
  3221. # DEBUG BEGIN_STMT
  3222. if (cTxLock_18 == -1)
  3223. goto <bb 16>; [34.00%]
  3224. else
  3225. goto <bb 20>; [66.00%]
  3226. <bb 16> [local count: 26761]:
  3227. # DEBUG BEGIN_STMT
  3228. _5 ={v} MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive.uxNumberOfItems;
  3229. if (_5 != 0)
  3230. goto <bb 17>; [33.00%]
  3231. else
  3232. goto <bb 25>; [67.00%]
  3233. <bb 17> [local count: 8831]:
  3234. # DEBUG BEGIN_STMT
  3235. _6 = &MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive;
  3236. _7 = xTaskRemoveFromEventList (_6);
  3237. if (_7 != 0)
  3238. goto <bb 18>; [50.00%]
  3239. else
  3240. goto <bb 25>; [50.00%]
  3241. <bb 18> [local count: 4416]:
  3242. # DEBUG BEGIN_STMT
  3243. if (pxHigherPriorityTaskWoken_23(D) != 0B)
  3244. goto <bb 19>; [70.00%]
  3245. else
  3246. goto <bb 25>; [30.00%]
  3247. <bb 19> [local count: 3091]:
  3248. # DEBUG BEGIN_STMT
  3249. *pxHigherPriorityTaskWoken_23(D) = 1;
  3250. goto <bb 25>; [100.00%]
  3251. <bb 20> [local count: 51949]:
  3252. # DEBUG BEGIN_STMT
  3253. if (cTxLock_18 == 127)
  3254. goto <bb 21>; [34.00%]
  3255. else
  3256. goto <bb 23>; [66.00%]
  3257. <bb 21> [local count: 17663]:
  3258. # DEBUG BEGIN_STMT
  3259. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3260. # DEBUG BEGIN_STMT
  3261. # DEBUG BEGIN_STMT
  3262. __asm__ __volatile__(" mov %0, %1
  3263. msr basepri, %0
  3264. isb
  3265. dsb
  3266. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  3267. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  3268. <bb 22> [local count: 176625587]:
  3269. # DEBUG ulNewBASEPRI => NULL
  3270. # DEBUG BEGIN_STMT
  3271. # DEBUG BEGIN_STMT
  3272. # DEBUG BEGIN_STMT
  3273. <bb 27> [local count: 176625587]:
  3274. goto <bb 22>; [100.00%]
  3275. <bb 23> [local count: 34286]:
  3276. # DEBUG BEGIN_STMT
  3277. # DEBUG BEGIN_STMT
  3278. cTxLock.10_8 = (unsigned char) cTxLock_18;
  3279. _9 = cTxLock.10_8 + 1;
  3280. _10 = (signed char) _9;
  3281. MEM[(struct Queue_t *)xQueue_13(D)].cTxLock ={v} _10;
  3282. <bb 25> [local count: 123445]:
  3283. # xReturn_11 = PHI <1(23), 0(14), 1(19), 1(17), 1(18), 1(16)>
  3284. # DEBUG xReturn => xReturn_11
  3285. # DEBUG BEGIN_STMT
  3286. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_28
  3287. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  3288. # DEBUG BEGIN_STMT
  3289. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_28 : "memory");
  3290. # DEBUG ulNewMaskValue => NULL
  3291. # DEBUG BEGIN_STMT
  3292. return xReturn_11;
  3293. }
  3294. xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition)
  3295. {
  3296. uint32_t ulNewBASEPRI;
  3297. uint32_t ulNewBASEPRI;
  3298. uint32_t ulNewBASEPRI;
  3299. uint32_t ulNewBASEPRI;
  3300. struct TimeOut_t xTimeOut;
  3301. BaseType_t xYieldRequired;
  3302. BaseType_t xEntryTimeSet;
  3303. long unsigned int _1;
  3304. long unsigned int _2;
  3305. long int _3;
  3306. long unsigned int xTicksToWait.3_4;
  3307. long unsigned int _5;
  3308. long unsigned int _6;
  3309. long unsigned int _7;
  3310. struct List_t * _8;
  3311. long int _9;
  3312. long unsigned int xTicksToWait.4_10;
  3313. signed char _11;
  3314. signed char _12;
  3315. long int _13;
  3316. long int _14;
  3317. struct List_t * _15;
  3318. long unsigned int xTicksToWait.5_16;
  3319. long int _17;
  3320. BaseType_t _21;
  3321. <bb 2> [local count: 357913]:
  3322. # DEBUG BEGIN_STMT
  3323. # DEBUG xEntryTimeSet => 0
  3324. # DEBUG BEGIN_STMT
  3325. # DEBUG BEGIN_STMT
  3326. # DEBUG pxQueue => xQueue_29(D)
  3327. # DEBUG BEGIN_STMT
  3328. if (xQueue_29(D) == 0B)
  3329. goto <bb 3>; [30.00%]
  3330. else
  3331. goto <bb 5>; [70.00%]
  3332. <bb 3> [local count: 107374]:
  3333. # DEBUG BEGIN_STMT
  3334. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3335. # DEBUG BEGIN_STMT
  3336. # DEBUG BEGIN_STMT
  3337. __asm__ __volatile__(" mov %0, %1
  3338. msr basepri, %0
  3339. isb
  3340. dsb
  3341. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  3342. # DEBUG ulNewBASEPRI => ulNewBASEPRI_67
  3343. <bb 4> [local count: 1073741824]:
  3344. # DEBUG ulNewBASEPRI => NULL
  3345. # DEBUG BEGIN_STMT
  3346. # DEBUG BEGIN_STMT
  3347. # DEBUG BEGIN_STMT
  3348. goto <bb 4>; [100.00%]
  3349. <bb 5> [local count: 250539]:
  3350. # DEBUG BEGIN_STMT
  3351. # DEBUG BEGIN_STMT
  3352. if (pvItemToQueue_30(D) != 0B)
  3353. goto <bb 9>; [70.00%]
  3354. else
  3355. goto <bb 6>; [30.00%]
  3356. <bb 6> [local count: 75162]:
  3357. _1 = MEM[(struct Queue_t *)xQueue_29(D)].uxItemSize;
  3358. if (_1 == 0)
  3359. goto <bb 9>; [50.00%]
  3360. else
  3361. goto <bb 7>; [50.00%]
  3362. <bb 7> [local count: 37581]:
  3363. # DEBUG BEGIN_STMT
  3364. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3365. # DEBUG BEGIN_STMT
  3366. # DEBUG BEGIN_STMT
  3367. __asm__ __volatile__(" mov %0, %1
  3368. msr basepri, %0
  3369. isb
  3370. dsb
  3371. " : "=r" ulNewBASEPRI_68 : "i" 16 : "memory");
  3372. # DEBUG ulNewBASEPRI => ulNewBASEPRI_68
  3373. <bb 8> [local count: 375809639]:
  3374. # DEBUG ulNewBASEPRI => NULL
  3375. # DEBUG BEGIN_STMT
  3376. # DEBUG BEGIN_STMT
  3377. # DEBUG BEGIN_STMT
  3378. goto <bb 8>; [100.00%]
  3379. <bb 9> [local count: 212958]:
  3380. # DEBUG BEGIN_STMT
  3381. # DEBUG BEGIN_STMT
  3382. if (xCopyPosition_32(D) != 2)
  3383. goto <bb 13>; [48.88%]
  3384. else
  3385. goto <bb 10>; [51.12%]
  3386. <bb 10> [local count: 108864]:
  3387. _2 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  3388. if (_2 == 1)
  3389. goto <bb 13>; [34.00%]
  3390. else
  3391. goto <bb 11>; [66.00%]
  3392. <bb 11> [local count: 71850]:
  3393. # DEBUG BEGIN_STMT
  3394. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3395. # DEBUG BEGIN_STMT
  3396. # DEBUG BEGIN_STMT
  3397. __asm__ __volatile__(" mov %0, %1
  3398. msr basepri, %0
  3399. isb
  3400. dsb
  3401. " : "=r" ulNewBASEPRI_69 : "i" 16 : "memory");
  3402. # DEBUG ulNewBASEPRI => ulNewBASEPRI_69
  3403. <bb 12> [local count: 718505940]:
  3404. # DEBUG ulNewBASEPRI => NULL
  3405. # DEBUG BEGIN_STMT
  3406. # DEBUG BEGIN_STMT
  3407. # DEBUG BEGIN_STMT
  3408. goto <bb 12>; [100.00%]
  3409. <bb 13> [local count: 141108]:
  3410. # DEBUG BEGIN_STMT
  3411. # DEBUG BEGIN_STMT
  3412. _3 = xTaskGetSchedulerState ();
  3413. if (_3 != 0)
  3414. goto <bb 14>; [50.00%]
  3415. else
  3416. goto <bb 15>; [50.00%]
  3417. <bb 14> [local count: 105831]:
  3418. # xEntryTimeSet_36 = PHI <0(13), 0(15)>
  3419. goto <bb 19>; [100.00%]
  3420. <bb 15> [local count: 70554]:
  3421. xTicksToWait.3_4 = xTicksToWait;
  3422. if (xTicksToWait.3_4 == 0)
  3423. goto <bb 14>; [50.00%]
  3424. else
  3425. goto <bb 16>; [50.00%]
  3426. <bb 16> [local count: 35277]:
  3427. # DEBUG BEGIN_STMT
  3428. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3429. # DEBUG BEGIN_STMT
  3430. # DEBUG BEGIN_STMT
  3431. __asm__ __volatile__(" mov %0, %1
  3432. msr basepri, %0
  3433. isb
  3434. dsb
  3435. " : "=r" ulNewBASEPRI_70 : "i" 16 : "memory");
  3436. # DEBUG ulNewBASEPRI => ulNewBASEPRI_70
  3437. <bb 17> [local count: 352770504]:
  3438. # DEBUG ulNewBASEPRI => NULL
  3439. # DEBUG BEGIN_STMT
  3440. # DEBUG BEGIN_STMT
  3441. # DEBUG BEGIN_STMT
  3442. goto <bb 17>; [100.00%]
  3443. <bb 18> [local count: 896877]:
  3444. # xEntryTimeSet_18 = PHI <xEntryTimeSet_20(38), xEntryTimeSet_20(39), xEntryTimeSet_20(37)>
  3445. <bb 19> [local count: 1002708]:
  3446. # xEntryTimeSet_19 = PHI <xEntryTimeSet_36(14), xEntryTimeSet_18(18)>
  3447. # DEBUG xEntryTimeSet => xEntryTimeSet_19
  3448. # DEBUG BEGIN_STMT
  3449. # DEBUG BEGIN_STMT
  3450. # DEBUG BEGIN_STMT
  3451. vPortEnterCritical ();
  3452. # DEBUG BEGIN_STMT
  3453. _5 ={v} MEM[(struct Queue_t *)xQueue_29(D)].uxMessagesWaiting;
  3454. _6 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  3455. if (_5 < _6)
  3456. goto <bb 21>; [2.75%]
  3457. else
  3458. goto <bb 20>; [97.25%]
  3459. <bb 20> [local count: 975134]:
  3460. if (xCopyPosition_32(D) == 2)
  3461. goto <bb 21>; [2.75%]
  3462. else
  3463. goto <bb 27>; [97.25%]
  3464. <bb 21> [local count: 54391]:
  3465. # DEBUG BEGIN_STMT
  3466. # DEBUG BEGIN_STMT
  3467. xYieldRequired_57 = prvCopyDataToQueue (xQueue_29(D), pvItemToQueue_30(D), xCopyPosition_32(D));
  3468. # DEBUG xYieldRequired => xYieldRequired_57
  3469. # DEBUG BEGIN_STMT
  3470. _7 ={v} MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive.uxNumberOfItems;
  3471. if (_7 != 0)
  3472. goto <bb 22>; [33.00%]
  3473. else
  3474. goto <bb 24>; [67.00%]
  3475. <bb 22> [local count: 17949]:
  3476. # DEBUG BEGIN_STMT
  3477. _8 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive;
  3478. _9 = xTaskRemoveFromEventList (_8);
  3479. if (_9 != 0)
  3480. goto <bb 23>; [50.00%]
  3481. else
  3482. goto <bb 26>; [50.00%]
  3483. <bb 23> [local count: 8974]:
  3484. # DEBUG BEGIN_STMT
  3485. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3486. # DEBUG BEGIN_STMT
  3487. __asm__ __volatile__("dsb" : : : "memory");
  3488. # DEBUG BEGIN_STMT
  3489. __asm__ __volatile__("isb");
  3490. # DEBUG BEGIN_STMT
  3491. goto <bb 26>; [100.00%]
  3492. <bb 24> [local count: 36442]:
  3493. # DEBUG BEGIN_STMT
  3494. if (xYieldRequired_57 != 0)
  3495. goto <bb 25>; [50.00%]
  3496. else
  3497. goto <bb 26>; [50.00%]
  3498. <bb 25> [local count: 18221]:
  3499. # DEBUG BEGIN_STMT
  3500. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3501. # DEBUG BEGIN_STMT
  3502. __asm__ __volatile__("dsb" : : : "memory");
  3503. # DEBUG BEGIN_STMT
  3504. __asm__ __volatile__("isb");
  3505. # DEBUG BEGIN_STMT
  3506. <bb 26> [local count: 54391]:
  3507. # DEBUG BEGIN_STMT
  3508. # DEBUG BEGIN_STMT
  3509. vPortExitCritical ();
  3510. # DEBUG BEGIN_STMT
  3511. goto <bb 41>; [100.00%]
  3512. <bb 27> [local count: 948318]:
  3513. # DEBUG BEGIN_STMT
  3514. xTicksToWait.4_10 = xTicksToWait;
  3515. if (xTicksToWait.4_10 == 0)
  3516. goto <bb 28>; [2.75%]
  3517. else
  3518. goto <bb 29>; [97.25%]
  3519. <bb 28> [local count: 26079]:
  3520. # DEBUG BEGIN_STMT
  3521. vPortExitCritical ();
  3522. # DEBUG BEGIN_STMT
  3523. # DEBUG BEGIN_STMT
  3524. goto <bb 41>; [100.00%]
  3525. <bb 29> [local count: 922239]:
  3526. # DEBUG BEGIN_STMT
  3527. if (xEntryTimeSet_19 == 0)
  3528. goto <bb 30>; [33.00%]
  3529. else
  3530. goto <bb 31>; [67.00%]
  3531. <bb 30> [local count: 304339]:
  3532. # DEBUG BEGIN_STMT
  3533. vTaskInternalSetTimeOutState (&xTimeOut);
  3534. # DEBUG BEGIN_STMT
  3535. # DEBUG xEntryTimeSet => 1
  3536. <bb 31> [local count: 922239]:
  3537. # xEntryTimeSet_20 = PHI <xEntryTimeSet_19(29), 1(30)>
  3538. # DEBUG xEntryTimeSet => xEntryTimeSet_20
  3539. # DEBUG BEGIN_STMT
  3540. # DEBUG BEGIN_STMT
  3541. vPortExitCritical ();
  3542. # DEBUG BEGIN_STMT
  3543. vTaskSuspendAll ();
  3544. # DEBUG BEGIN_STMT
  3545. vPortEnterCritical ();
  3546. # DEBUG BEGIN_STMT
  3547. _11 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cRxLock;
  3548. if (_11 == -1)
  3549. goto <bb 32>; [34.00%]
  3550. else
  3551. goto <bb 33>; [66.00%]
  3552. <bb 32> [local count: 313561]:
  3553. # DEBUG BEGIN_STMT
  3554. MEM[(struct Queue_t *)xQueue_29(D)].cRxLock ={v} 0;
  3555. <bb 33> [local count: 922239]:
  3556. # DEBUG BEGIN_STMT
  3557. _12 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cTxLock;
  3558. if (_12 == -1)
  3559. goto <bb 34>; [34.00%]
  3560. else
  3561. goto <bb 35>; [66.00%]
  3562. <bb 34> [local count: 313561]:
  3563. # DEBUG BEGIN_STMT
  3564. MEM[(struct Queue_t *)xQueue_29(D)].cTxLock ={v} 0;
  3565. <bb 35> [local count: 922239]:
  3566. # DEBUG BEGIN_STMT
  3567. vPortExitCritical ();
  3568. # DEBUG BEGIN_STMT
  3569. _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  3570. if (_13 == 0)
  3571. goto <bb 36>; [97.25%]
  3572. else
  3573. goto <bb 40>; [2.75%]
  3574. <bb 36> [local count: 896877]:
  3575. # DEBUG BEGIN_STMT
  3576. _14 = prvIsQueueFull (xQueue_29(D));
  3577. if (_14 != 0)
  3578. goto <bb 37>; [50.00%]
  3579. else
  3580. goto <bb 39>; [50.00%]
  3581. <bb 37> [local count: 448439]:
  3582. # DEBUG BEGIN_STMT
  3583. # DEBUG BEGIN_STMT
  3584. _15 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToSend;
  3585. xTicksToWait.5_16 = xTicksToWait;
  3586. vTaskPlaceOnEventList (_15, xTicksToWait.5_16);
  3587. # DEBUG BEGIN_STMT
  3588. prvUnlockQueue (xQueue_29(D));
  3589. # DEBUG BEGIN_STMT
  3590. _17 = xTaskResumeAll ();
  3591. if (_17 == 0)
  3592. goto <bb 38>; [50.00%]
  3593. else
  3594. goto <bb 18>; [50.00%]
  3595. <bb 38> [local count: 224219]:
  3596. # DEBUG BEGIN_STMT
  3597. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3598. # DEBUG BEGIN_STMT
  3599. __asm__ __volatile__("dsb" : : : "memory");
  3600. # DEBUG BEGIN_STMT
  3601. __asm__ __volatile__("isb");
  3602. goto <bb 18>; [100.00%]
  3603. <bb 39> [local count: 448439]:
  3604. # DEBUG BEGIN_STMT
  3605. prvUnlockQueue (xQueue_29(D));
  3606. # DEBUG BEGIN_STMT
  3607. xTaskResumeAll ();
  3608. goto <bb 18>; [100.00%]
  3609. <bb 40> [local count: 25362]:
  3610. # DEBUG BEGIN_STMT
  3611. prvUnlockQueue (xQueue_29(D));
  3612. # DEBUG BEGIN_STMT
  3613. xTaskResumeAll ();
  3614. # DEBUG BEGIN_STMT
  3615. # DEBUG BEGIN_STMT
  3616. <bb 41> [local count: 105831]:
  3617. # _21 = PHI <1(26), 0(28), 0(40)>
  3618. xTimeOut ={v} {CLOBBER};
  3619. return _21;
  3620. }
  3621. xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount)
  3622. {
  3623. uint32_t ulNewBASEPRI;
  3624. struct QueueDefinition * xHandle;
  3625. <bb 2> [local count: 128592]:
  3626. # DEBUG BEGIN_STMT
  3627. # DEBUG xHandle => 0B
  3628. # DEBUG BEGIN_STMT
  3629. if (uxMaxCount_2(D) != 0)
  3630. goto <bb 3>; [50.00%]
  3631. else
  3632. goto <bb 6>; [50.00%]
  3633. <bb 3> [local count: 64296]:
  3634. if (uxMaxCount_2(D) >= uxInitialCount_3(D))
  3635. goto <bb 4>; [33.00%]
  3636. else
  3637. goto <bb 6>; [67.00%]
  3638. <bb 4> [local count: 21218]:
  3639. # DEBUG BEGIN_STMT
  3640. xHandle_6 = xQueueGenericCreate (uxMaxCount_2(D), 0, 2);
  3641. # DEBUG xHandle => xHandle_6
  3642. # DEBUG BEGIN_STMT
  3643. if (xHandle_6 != 0B)
  3644. goto <bb 5>; [70.00%]
  3645. else
  3646. goto <bb 8>; [30.00%]
  3647. <bb 5> [local count: 14852]:
  3648. # DEBUG BEGIN_STMT
  3649. MEM[(struct Queue_t *)xHandle_6].uxMessagesWaiting ={v} uxInitialCount_3(D);
  3650. # DEBUG BEGIN_STMT
  3651. goto <bb 8>; [100.00%]
  3652. <bb 6> [local count: 107374]:
  3653. # DEBUG BEGIN_STMT
  3654. # DEBUG BEGIN_STMT
  3655. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3656. # DEBUG BEGIN_STMT
  3657. # DEBUG BEGIN_STMT
  3658. __asm__ __volatile__(" mov %0, %1
  3659. msr basepri, %0
  3660. isb
  3661. dsb
  3662. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3663. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  3664. <bb 7> [local count: 1073741824]:
  3665. # DEBUG ulNewBASEPRI => NULL
  3666. # DEBUG BEGIN_STMT
  3667. # DEBUG BEGIN_STMT
  3668. # DEBUG BEGIN_STMT
  3669. <bb 9> [local count: 1073741824]:
  3670. goto <bb 7>; [100.00%]
  3671. <bb 8> [local count: 21218]:
  3672. # DEBUG xHandle => xHandle_6
  3673. # DEBUG BEGIN_STMT
  3674. # DEBUG BEGIN_STMT
  3675. # DEBUG BEGIN_STMT
  3676. return xHandle_6;
  3677. }
  3678. xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait)
  3679. {
  3680. uint32_t ulNewBASEPRI;
  3681. BaseType_t xReturn;
  3682. struct tskTaskControlBlock * _1;
  3683. struct tskTaskControlBlock * _2;
  3684. long unsigned int _3;
  3685. long unsigned int _4;
  3686. long unsigned int _5;
  3687. long unsigned int _6;
  3688. <bb 2> [local count: 230763]:
  3689. # DEBUG BEGIN_STMT
  3690. # DEBUG BEGIN_STMT
  3691. # DEBUG pxMutex => xMutex_9(D)
  3692. # DEBUG BEGIN_STMT
  3693. if (xMutex_9(D) == 0B)
  3694. goto <bb 3>; [46.53%]
  3695. else
  3696. goto <bb 5>; [53.47%]
  3697. <bb 3> [local count: 107374]:
  3698. # DEBUG BEGIN_STMT
  3699. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3700. # DEBUG BEGIN_STMT
  3701. # DEBUG BEGIN_STMT
  3702. __asm__ __volatile__(" mov %0, %1
  3703. msr basepri, %0
  3704. isb
  3705. dsb
  3706. " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  3707. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  3708. <bb 4> [local count: 1073741824]:
  3709. # DEBUG ulNewBASEPRI => NULL
  3710. # DEBUG BEGIN_STMT
  3711. # DEBUG BEGIN_STMT
  3712. # DEBUG BEGIN_STMT
  3713. <bb 10> [local count: 1073741824]:
  3714. goto <bb 4>; [100.00%]
  3715. <bb 5> [local count: 123389]:
  3716. # DEBUG BEGIN_STMT
  3717. # DEBUG BEGIN_STMT
  3718. # DEBUG BEGIN_STMT
  3719. _1 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.xMutexHolder;
  3720. _2 = xTaskGetCurrentTaskHandle ();
  3721. if (_1 == _2)
  3722. goto <bb 6>; [46.53%]
  3723. else
  3724. goto <bb 7>; [53.47%]
  3725. <bb 6> [local count: 57413]:
  3726. # DEBUG BEGIN_STMT
  3727. _3 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  3728. _4 = _3 + 1;
  3729. MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  3730. # DEBUG BEGIN_STMT
  3731. # DEBUG xReturn => 1
  3732. goto <bb 9>; [100.00%]
  3733. <bb 7> [local count: 65976]:
  3734. # DEBUG BEGIN_STMT
  3735. xReturn_14 = xQueueSemaphoreTake (xMutex_9(D), xTicksToWait_12(D));
  3736. # DEBUG xReturn => xReturn_14
  3737. # DEBUG BEGIN_STMT
  3738. if (xReturn_14 != 0)
  3739. goto <bb 8>; [50.00%]
  3740. else
  3741. goto <bb 9>; [50.00%]
  3742. <bb 8> [local count: 32988]:
  3743. # DEBUG BEGIN_STMT
  3744. _5 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  3745. _6 = _5 + 1;
  3746. MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _6;
  3747. <bb 9> [local count: 123389]:
  3748. # xReturn_7 = PHI <1(6), xReturn_14(7), xReturn_14(8)>
  3749. # DEBUG xReturn => xReturn_7
  3750. # DEBUG BEGIN_STMT
  3751. # DEBUG BEGIN_STMT
  3752. return xReturn_7;
  3753. }
  3754. xQueueGiveMutexRecursive (struct QueueDefinition * xMutex)
  3755. {
  3756. uint32_t ulNewBASEPRI;
  3757. BaseType_t xReturn;
  3758. struct tskTaskControlBlock * _1;
  3759. struct tskTaskControlBlock * _2;
  3760. long unsigned int _3;
  3761. long unsigned int _4;
  3762. <bb 2> [local count: 230763]:
  3763. # DEBUG BEGIN_STMT
  3764. # DEBUG BEGIN_STMT
  3765. # DEBUG pxMutex => xMutex_7(D)
  3766. # DEBUG BEGIN_STMT
  3767. if (xMutex_7(D) == 0B)
  3768. goto <bb 3>; [46.53%]
  3769. else
  3770. goto <bb 5>; [53.47%]
  3771. <bb 3> [local count: 107374]:
  3772. # DEBUG BEGIN_STMT
  3773. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3774. # DEBUG BEGIN_STMT
  3775. # DEBUG BEGIN_STMT
  3776. __asm__ __volatile__(" mov %0, %1
  3777. msr basepri, %0
  3778. isb
  3779. dsb
  3780. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  3781. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  3782. <bb 4> [local count: 1073741824]:
  3783. # DEBUG ulNewBASEPRI => NULL
  3784. # DEBUG BEGIN_STMT
  3785. # DEBUG BEGIN_STMT
  3786. # DEBUG BEGIN_STMT
  3787. <bb 10> [local count: 1073741824]:
  3788. goto <bb 4>; [100.00%]
  3789. <bb 5> [local count: 123389]:
  3790. # DEBUG BEGIN_STMT
  3791. # DEBUG BEGIN_STMT
  3792. _1 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.xMutexHolder;
  3793. _2 = xTaskGetCurrentTaskHandle ();
  3794. if (_1 == _2)
  3795. goto <bb 6>; [30.00%]
  3796. else
  3797. goto <bb 9>; [70.00%]
  3798. <bb 6> [local count: 37017]:
  3799. # DEBUG BEGIN_STMT
  3800. # DEBUG BEGIN_STMT
  3801. _3 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount;
  3802. _4 = _3 + 4294967295;
  3803. MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  3804. # DEBUG BEGIN_STMT
  3805. if (_4 == 0)
  3806. goto <bb 7>; [33.00%]
  3807. else
  3808. goto <bb 9>; [67.00%]
  3809. <bb 7> [local count: 12216]:
  3810. # DEBUG BEGIN_STMT
  3811. xQueueGenericSend (xMutex_7(D), 0B, 0, 0);
  3812. <bb 9> [local count: 123389]:
  3813. # xReturn_5 = PHI <1(7), 0(5), 1(6)>
  3814. # DEBUG xReturn => xReturn_5
  3815. # DEBUG BEGIN_STMT
  3816. # DEBUG BEGIN_STMT
  3817. return xReturn_5;
  3818. }
  3819. xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore)
  3820. {
  3821. uint32_t ulNewBASEPRI;
  3822. struct tskTaskControlBlock * pxReturn;
  3823. int8_t * _1;
  3824. <bb 2> [local count: 357913]:
  3825. # DEBUG BEGIN_STMT
  3826. # DEBUG BEGIN_STMT
  3827. if (xSemaphore_3(D) == 0B)
  3828. goto <bb 3>; [30.00%]
  3829. else
  3830. goto <bb 5>; [70.00%]
  3831. <bb 3> [local count: 107374]:
  3832. # DEBUG BEGIN_STMT
  3833. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3834. # DEBUG BEGIN_STMT
  3835. # DEBUG BEGIN_STMT
  3836. __asm__ __volatile__(" mov %0, %1
  3837. msr basepri, %0
  3838. isb
  3839. dsb
  3840. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  3841. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  3842. <bb 4> [local count: 1073741824]:
  3843. # DEBUG ulNewBASEPRI => NULL
  3844. # DEBUG BEGIN_STMT
  3845. # DEBUG BEGIN_STMT
  3846. # DEBUG BEGIN_STMT
  3847. <bb 8> [local count: 1073741824]:
  3848. goto <bb 4>; [100.00%]
  3849. <bb 5> [local count: 250539]:
  3850. # DEBUG BEGIN_STMT
  3851. # DEBUG BEGIN_STMT
  3852. _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  3853. if (_1 == 0B)
  3854. goto <bb 6>; [51.20%]
  3855. else
  3856. goto <bb 7>; [48.80%]
  3857. <bb 6> [local count: 128276]:
  3858. # DEBUG BEGIN_STMT
  3859. pxReturn_5 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  3860. # DEBUG pxReturn => pxReturn_5
  3861. <bb 7> [local count: 250539]:
  3862. # pxReturn_2 = PHI <pxReturn_5(6), 0B(5)>
  3863. # DEBUG pxReturn => pxReturn_2
  3864. # DEBUG BEGIN_STMT
  3865. return pxReturn_2;
  3866. }
  3867. xQueueGetMutexHolder (struct QueueDefinition * xSemaphore)
  3868. {
  3869. uint32_t ulNewBASEPRI;
  3870. struct tskTaskControlBlock * pxReturn;
  3871. int8_t * _1;
  3872. <bb 2> [local count: 230763]:
  3873. # DEBUG BEGIN_STMT
  3874. # DEBUG BEGIN_STMT
  3875. # DEBUG pxSemaphore => xSemaphore_3(D)
  3876. # DEBUG BEGIN_STMT
  3877. if (xSemaphore_3(D) == 0B)
  3878. goto <bb 3>; [46.53%]
  3879. else
  3880. goto <bb 5>; [53.47%]
  3881. <bb 3> [local count: 107374]:
  3882. # DEBUG BEGIN_STMT
  3883. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3884. # DEBUG BEGIN_STMT
  3885. # DEBUG BEGIN_STMT
  3886. __asm__ __volatile__(" mov %0, %1
  3887. msr basepri, %0
  3888. isb
  3889. dsb
  3890. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3891. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  3892. <bb 4> [local count: 1073741824]:
  3893. # DEBUG ulNewBASEPRI => NULL
  3894. # DEBUG BEGIN_STMT
  3895. # DEBUG BEGIN_STMT
  3896. # DEBUG BEGIN_STMT
  3897. <bb 8> [local count: 1073741824]:
  3898. goto <bb 4>; [100.00%]
  3899. <bb 5> [local count: 123389]:
  3900. # DEBUG BEGIN_STMT
  3901. # DEBUG BEGIN_STMT
  3902. vPortEnterCritical ();
  3903. # DEBUG BEGIN_STMT
  3904. _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  3905. if (_1 == 0B)
  3906. goto <bb 6>; [51.20%]
  3907. else
  3908. goto <bb 7>; [48.80%]
  3909. <bb 6> [local count: 63175]:
  3910. # DEBUG BEGIN_STMT
  3911. pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  3912. # DEBUG pxReturn => pxReturn_6
  3913. <bb 7> [local count: 123389]:
  3914. # pxReturn_2 = PHI <pxReturn_6(6), 0B(5)>
  3915. # DEBUG pxReturn => pxReturn_2
  3916. # DEBUG BEGIN_STMT
  3917. vPortExitCritical ();
  3918. # DEBUG BEGIN_STMT
  3919. return pxReturn_2;
  3920. }
  3921. xQueueCreateMutex (const uint8_t ucQueueType)
  3922. {
  3923. struct QueueDefinition * xNewQueue;
  3924. <bb 2> [local count: 1073741824]:
  3925. # DEBUG BEGIN_STMT
  3926. # DEBUG BEGIN_STMT
  3927. # DEBUG uxMutexLength => 1
  3928. # DEBUG uxMutexSize => 0
  3929. # DEBUG BEGIN_STMT
  3930. xNewQueue_4 = xQueueGenericCreate (1, 0, ucQueueType_2(D));
  3931. # DEBUG xNewQueue => xNewQueue_4
  3932. # DEBUG BEGIN_STMT
  3933. prvInitialiseMutex (xNewQueue_4);
  3934. # DEBUG BEGIN_STMT
  3935. return xNewQueue_4;
  3936. }
  3937. prvInitialiseMutex (struct Queue_t * pxNewQueue)
  3938. {
  3939. <bb 2> [local count: 1073741824]:
  3940. # DEBUG BEGIN_STMT
  3941. if (pxNewQueue_2(D) != 0B)
  3942. goto <bb 3>; [53.47%]
  3943. else
  3944. goto <bb 4>; [46.53%]
  3945. <bb 3> [local count: 574129754]:
  3946. # DEBUG BEGIN_STMT
  3947. pxNewQueue_2(D)->u.xSemaphore.xMutexHolder = 0B;
  3948. # DEBUG BEGIN_STMT
  3949. pxNewQueue_2(D)->pcHead = 0B;
  3950. # DEBUG BEGIN_STMT
  3951. pxNewQueue_2(D)->u.xSemaphore.uxRecursiveCallCount = 0;
  3952. # DEBUG BEGIN_STMT
  3953. # DEBUG BEGIN_STMT
  3954. xQueueGenericSend (pxNewQueue_2(D), 0B, 0, 0);
  3955. <bb 4> [local count: 1073741824]:
  3956. # DEBUG BEGIN_STMT
  3957. return;
  3958. }
  3959. prvInitialiseNewQueue (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t * pucQueueStorage, const uint8_t ucQueueType, struct Queue_t * pxNewQueue)
  3960. {
  3961. <bb 2> [local count: 1073741824]:
  3962. # DEBUG BEGIN_STMT
  3963. # DEBUG BEGIN_STMT
  3964. if (uxItemSize_2(D) == 0)
  3965. goto <bb 3>; [50.00%]
  3966. else
  3967. goto <bb 4>; [50.00%]
  3968. <bb 3> [local count: 536870913]:
  3969. # DEBUG BEGIN_STMT
  3970. pxNewQueue_4(D)->pcHead = pxNewQueue_4(D);
  3971. goto <bb 5>; [100.00%]
  3972. <bb 4> [local count: 536870913]:
  3973. # DEBUG BEGIN_STMT
  3974. pxNewQueue_4(D)->pcHead = pucQueueStorage_5(D);
  3975. <bb 5> [local count: 1073741824]:
  3976. # DEBUG BEGIN_STMT
  3977. pxNewQueue_4(D)->uxLength = uxQueueLength_8(D);
  3978. # DEBUG BEGIN_STMT
  3979. pxNewQueue_4(D)->uxItemSize = uxItemSize_2(D);
  3980. # DEBUG BEGIN_STMT
  3981. xQueueGenericReset (pxNewQueue_4(D), 1);
  3982. # DEBUG BEGIN_STMT
  3983. pxNewQueue_4(D)->ucQueueType = ucQueueType_12(D);
  3984. # DEBUG BEGIN_STMT
  3985. return;
  3986. }
  3987. xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType)
  3988. {
  3989. uint32_t ulNewBASEPRI;
  3990. uint8_t * pucQueueStorage;
  3991. struct Queue_t * pxNewQueue;
  3992. __complex__ long unsigned int _1;
  3993. long unsigned int _2;
  3994. long unsigned int _3;
  3995. unsigned int _4;
  3996. <bb 2> [local count: 117029]:
  3997. # DEBUG BEGIN_STMT
  3998. # DEBUG pxNewQueue => 0B
  3999. # DEBUG BEGIN_STMT
  4000. # DEBUG BEGIN_STMT
  4001. # DEBUG BEGIN_STMT
  4002. if (uxQueueLength_6(D) != 0)
  4003. goto <bb 3>; [50.00%]
  4004. else
  4005. goto <bb 7>; [50.00%]
  4006. <bb 3> [local count: 58514]:
  4007. _1 = .MUL_OVERFLOW (uxItemSize_7(D), uxQueueLength_6(D));
  4008. _2 = IMAGPART_EXPR <_1>;
  4009. if (_2 == 0)
  4010. goto <bb 4>; [50.00%]
  4011. else
  4012. goto <bb 7>; [50.00%]
  4013. <bb 4> [local count: 29257]:
  4014. _3 = uxQueueLength_6(D) * uxItemSize_7(D);
  4015. if (_3 <= 4294967215)
  4016. goto <bb 5>; [33.00%]
  4017. else
  4018. goto <bb 7>; [67.00%]
  4019. <bb 5> [local count: 9655]:
  4020. # DEBUG BEGIN_STMT
  4021. # DEBUG xQueueSizeInBytes => _3
  4022. # DEBUG BEGIN_STMT
  4023. _4 = _3 + 80;
  4024. pxNewQueue_10 = pvPortMalloc (_4);
  4025. # DEBUG pxNewQueue => pxNewQueue_10
  4026. # DEBUG BEGIN_STMT
  4027. if (pxNewQueue_10 != 0B)
  4028. goto <bb 6>; [53.47%]
  4029. else
  4030. goto <bb 9>; [46.53%]
  4031. <bb 6> [local count: 5162]:
  4032. # DEBUG BEGIN_STMT
  4033. # DEBUG pucQueueStorage => pxNewQueue_10
  4034. # DEBUG BEGIN_STMT
  4035. pucQueueStorage_11 = pxNewQueue_10 + 80;
  4036. # DEBUG pucQueueStorage => pucQueueStorage_11
  4037. # DEBUG BEGIN_STMT
  4038. prvInitialiseNewQueue (uxQueueLength_6(D), uxItemSize_7(D), pucQueueStorage_11, ucQueueType_12(D), pxNewQueue_10);
  4039. goto <bb 9>; [100.00%]
  4040. <bb 7> [local count: 107374]:
  4041. # DEBUG BEGIN_STMT
  4042. # DEBUG BEGIN_STMT
  4043. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4044. # DEBUG BEGIN_STMT
  4045. # DEBUG BEGIN_STMT
  4046. __asm__ __volatile__(" mov %0, %1
  4047. msr basepri, %0
  4048. isb
  4049. dsb
  4050. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  4051. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  4052. <bb 8> [local count: 1073741824]:
  4053. # DEBUG ulNewBASEPRI => NULL
  4054. # DEBUG BEGIN_STMT
  4055. # DEBUG BEGIN_STMT
  4056. # DEBUG BEGIN_STMT
  4057. <bb 10> [local count: 1073741824]:
  4058. goto <bb 8>; [100.00%]
  4059. <bb 9> [local count: 9655]:
  4060. # DEBUG pxNewQueue => pxNewQueue_10
  4061. # DEBUG BEGIN_STMT
  4062. # DEBUG BEGIN_STMT
  4063. # DEBUG BEGIN_STMT
  4064. return pxNewQueue_10;
  4065. }
  4066. xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue)
  4067. {
  4068. BaseType_t D.7333;
  4069. uint32_t ulNewBASEPRI;
  4070. uint32_t ulNewBASEPRI;
  4071. long unsigned int _1;
  4072. __complex__ long unsigned int _2;
  4073. long unsigned int _3;
  4074. long unsigned int _4;
  4075. <bb 2> [local count: 183702]:
  4076. # DEBUG BEGIN_STMT
  4077. # DEBUG xReturn => 1
  4078. # DEBUG BEGIN_STMT
  4079. # DEBUG pxQueue => xQueue_5(D)
  4080. # DEBUG BEGIN_STMT
  4081. if (xQueue_5(D) == 0B)
  4082. goto <bb 3>; [30.00%]
  4083. else
  4084. goto <bb 5>; [70.00%]
  4085. <bb 3> [local count: 55111]:
  4086. # DEBUG BEGIN_STMT
  4087. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4088. # DEBUG BEGIN_STMT
  4089. # DEBUG BEGIN_STMT
  4090. __asm__ __volatile__(" mov %0, %1
  4091. msr basepri, %0
  4092. isb
  4093. dsb
  4094. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  4095. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  4096. <bb 4> [local count: 551107865]:
  4097. # DEBUG ulNewBASEPRI => NULL
  4098. # DEBUG BEGIN_STMT
  4099. # DEBUG BEGIN_STMT
  4100. # DEBUG BEGIN_STMT
  4101. goto <bb 4>; [100.00%]
  4102. <bb 5> [local count: 128592]:
  4103. # DEBUG BEGIN_STMT
  4104. # DEBUG BEGIN_STMT
  4105. _1 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength;
  4106. if (_1 != 0)
  4107. goto <bb 6>; [50.00%]
  4108. else
  4109. goto <bb 8>; [50.00%]
  4110. <bb 6> [local count: 64296]:
  4111. _3 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize;
  4112. _2 = .MUL_OVERFLOW (_3, _1);
  4113. _4 = IMAGPART_EXPR <_2>;
  4114. if (_4 == 0)
  4115. goto <bb 7>; [33.00%]
  4116. else
  4117. goto <bb 8>; [67.00%]
  4118. <bb 7> [local count: 21218]:
  4119. _13 = xQueueGenericReset.part.0 (xQueue_5(D), xNewQueue_7(D));
  4120. return _13;
  4121. <bb 8> [local count: 107374]:
  4122. # DEBUG xReturn => NULL
  4123. # DEBUG BEGIN_STMT
  4124. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4125. # DEBUG BEGIN_STMT
  4126. # DEBUG BEGIN_STMT
  4127. __asm__ __volatile__(" mov %0, %1
  4128. msr basepri, %0
  4129. isb
  4130. dsb
  4131. " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory");
  4132. # DEBUG ulNewBASEPRI => ulNewBASEPRI_10
  4133. <bb 9> [local count: 1073741824]:
  4134. # DEBUG ulNewBASEPRI => NULL
  4135. # DEBUG BEGIN_STMT
  4136. # DEBUG BEGIN_STMT
  4137. # DEBUG BEGIN_STMT
  4138. goto <bb 9>; [100.00%]
  4139. }