queue.c.071i.devirt 136 KB

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