queue.c.064i.free-fnsummary1 101 KB

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