queue.c.069i.profile_estimate 101 KB

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