queue.c.068i.whole-program 137 KB

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