queue.c.081i.comdats 101 KB

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