timers.c.072i.cp 79 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267
  1. IPA constant propagation start:
  2. Determining dynamic type for call: _2 (_3, _4);
  3. Starting walk at: _2 (_3, _4);
  4. instance pointer: _3 Outer instance pointer: _3 offset: 0 (bits) vtbl reference:
  5. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  6. Function call may change dynamic type:vPortFree (pxTimer_56);
  7. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  8. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  9. Function call may change dynamic type:_2 (_3, _4);
  10. Function call may change dynamic type:uxListRemove (_7);
  11. Function call may change dynamic type:_22 (pxTimer_14);
  12. Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  13. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  14. Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  15. Determining dynamic type for call: xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  16. Starting walk at: xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  17. instance pointer: &xTimerListsWereSwitched Outer instance pointer: xTimerListsWereSwitched offset: 0 (bits) vtbl reference:
  18. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  19. Function call may change dynamic type:vPortFree (pxTimer_56);
  20. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  21. Function call may change dynamic type:uxListRemove (_7);
  22. Function call may change dynamic type:_22 (pxTimer_14);
  23. Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  24. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  25. Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  26. Function call may change dynamic type:_2 (_3, _4);
  27. Determining dynamic type for call: prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  28. Starting walk at: prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  29. instance pointer: pxTimer_44 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference:
  30. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  31. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  32. Function call may change dynamic type:vPortFree (pxTimer_56);
  33. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  34. Function call may change dynamic type:uxListRemove (_7);
  35. Function call may change dynamic type:_22 (pxTimer_14);
  36. Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  37. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  38. Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  39. Function call may change dynamic type:_2 (_3, _4);
  40. Determining dynamic type for call: _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  41. Starting walk at: _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  42. instance pointer: pxTimer_14 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference:
  43. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  44. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  45. Function call may change dynamic type:vPortFree (pxTimer_56);
  46. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  47. Function call may change dynamic type:uxListRemove (_7);
  48. Function call may change dynamic type:_22 (pxTimer_14);
  49. Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  50. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  51. Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  52. Function call may change dynamic type:_2 (_3, _4);
  53. Determining dynamic type for call: prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  54. Starting walk at: prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  55. instance pointer: pxTimer_14 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference:
  56. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  57. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  58. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  59. Function call may change dynamic type:vPortFree (pxTimer_56);
  60. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  61. Function call may change dynamic type:uxListRemove (_7);
  62. Function call may change dynamic type:_22 (pxTimer_14);
  63. Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  64. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  65. Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  66. Function call may change dynamic type:_2 (_3, _4);
  67. Determining dynamic type for call: _22 (pxTimer_14);
  68. Starting walk at: _22 (pxTimer_14);
  69. instance pointer: pxTimer_14 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference:
  70. Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  71. Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  72. Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  73. Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  74. Function call may change dynamic type:vPortFree (pxTimer_56);
  75. Function call may change dynamic type:_22 (pxTimer_14);
  76. Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  77. Function call may change dynamic type:_2 (_3, _4);
  78. Function call may change dynamic type:uxListRemove (_7);
  79. Determining dynamic type for call: xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D));
  80. Starting walk at: xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D));
  81. instance pointer: pxTimer_8(D) Outer instance pointer: pxTimer_8(D) offset: 0 (bits) vtbl reference:
  82. Determining dynamic type for call: xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched);
  83. Starting walk at: xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched);
  84. instance pointer: &xTimerListsWereSwitched Outer instance pointer: xTimerListsWereSwitched offset: 0 (bits) vtbl reference:
  85. Function call may change dynamic type:vTaskSuspendAll ();
  86. Determining dynamic type for call: xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  87. Starting walk at: xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  88. instance pointer: &xListWasEmpty Outer instance pointer: xListWasEmpty offset: 0 (bits) vtbl reference:
  89. Function call may change dynamic type:prvProcessReceivedCommands ();
  90. Function call may change dynamic type:prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1);
  91. Function call may change dynamic type:xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  92. Determining dynamic type for call: prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  93. Starting walk at: prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  94. instance pointer: pxTimer_9 Outer instance pointer: pxTimer_9 offset: 0 (bits) vtbl reference:
  95. Function call may change dynamic type:uxListRemove (_3);
  96. Determining dynamic type for call: _6 (pxTimer_9);
  97. Starting walk at: _6 (pxTimer_9);
  98. instance pointer: pxTimer_9 Outer instance pointer: pxTimer_9 offset: 0 (bits) vtbl reference:
  99. Function call may change dynamic type:prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  100. Function call may change dynamic type:uxListRemove (_3);
  101. Determining dynamic type for call: _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  102. Starting walk at: _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  103. instance pointer: pxTimer_10(D) Outer instance pointer: pxTimer_10(D) offset: 0 (bits) vtbl reference:
  104. Function call may change dynamic type:_2 (pxTimer_10(D));
  105. Function call may change dynamic type:_5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  106. Determining dynamic type for call: _2 (pxTimer_10(D));
  107. Starting walk at: _2 (pxTimer_10(D));
  108. instance pointer: pxTimer_10(D) Outer instance pointer: pxTimer_10(D) offset: 0 (bits) vtbl reference:
  109. Function call may change dynamic type:_5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  110. Function call may change dynamic type:_2 (pxTimer_10(D));
  111. Function call may change dynamic type:_5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  112. Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  113. Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  114. instance pointer: pcTimerName_6(D) Outer instance pointer: pcTimerName_6(D) offset: 0 (bits) vtbl reference:
  115. Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44);
  116. Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  117. Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  118. instance pointer: pvTimerID_9(D) Outer instance pointer: pvTimerID_9(D) offset: 0 (bits) vtbl reference:
  119. Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44);
  120. Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  121. Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  122. instance pointer: pxCallbackFunction_10(D) Outer instance pointer: pxCallbackFunction_10(D) offset: 0 (bits) vtbl reference:
  123. Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44);
  124. Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  125. Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  126. instance pointer: pxNewTimer_4 Outer instance pointer: pxNewTimer_4 offset: 0 (bits) vtbl reference:
  127. Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44);
  128. IPA structures before propagation:
  129. Jump functions:
  130. Jump functions of caller prvInsertTimerInActiveList.part.0/57:
  131. Jump functions of caller xQueueGenericSendFromISR/56:
  132. Jump functions of caller xQueueGenericSend/55:
  133. Jump functions of caller xTaskGetSchedulerState/54:
  134. Jump functions of caller vListInitialiseItem/53:
  135. Jump functions of caller pvPortMalloc/52:
  136. Jump functions of caller vPortExitCritical/51:
  137. Jump functions of caller vQueueAddToRegistry/50:
  138. Jump functions of caller xQueueGenericCreate/49:
  139. Jump functions of caller vListInitialise/48:
  140. Jump functions of caller vPortEnterCritical/47:
  141. Jump functions of caller xQueueReceive/46:
  142. Jump functions of caller vPortFree/45:
  143. Jump functions of caller vListInsert/44:
  144. Jump functions of caller uxListRemove/43:
  145. Jump functions of caller xTaskGetTickCount/41:
  146. Jump functions of caller vQueueWaitForMessageRestricted/40:
  147. Jump functions of caller xTaskResumeAll/39:
  148. Jump functions of caller vTaskSuspendAll/38:
  149. Jump functions of caller xTaskCreate/37:
  150. Jump functions of caller vTimerSetTimerNumber/36:
  151. Jump functions of caller uxTimerGetTimerNumber/35:
  152. Jump functions of caller xTimerPendFunctionCall/34:
  153. Jump functions of caller xTimerPendFunctionCallFromISR/33:
  154. Jump functions of caller vTimerSetTimerID/32:
  155. Jump functions of caller pvTimerGetTimerID/31:
  156. Jump functions of caller xTimerIsTimerActive/30:
  157. Jump functions of caller prvCheckForValidListAndQueue/29:
  158. Jump functions of caller prvSwitchTimerLists/28:
  159. callsite prvSwitchTimerLists/28 -> prvProcessExpiredTimer/21 :
  160. param 0: UNKNOWN
  161. value: 0x0, mask: 0xffffffff
  162. Unknown VR
  163. param 1: CONST: 4294967295
  164. value: 0xffffffff, mask: 0x0
  165. Unknown VR
  166. Jump functions of caller prvProcessReceivedCommands/27:
  167. callsite prvProcessReceivedCommands/27 -> prvInsertTimerInActiveList/26 :
  168. param 0: UNKNOWN
  169. value: 0x0, mask: 0xffffffff
  170. VR ~[0, 0]
  171. param 1: UNKNOWN
  172. value: 0x0, mask: 0xffffffff
  173. Unknown VR
  174. param 2: UNKNOWN
  175. value: 0x0, mask: 0xffffffff
  176. Unknown VR
  177. param 3: UNKNOWN
  178. value: 0x0, mask: 0xffffffff
  179. Unknown VR
  180. callsite prvProcessReceivedCommands/27 -> prvReloadTimer/20 :
  181. param 0: UNKNOWN
  182. value: 0x0, mask: 0xffffffff
  183. VR ~[0, 0]
  184. param 1: UNKNOWN
  185. value: 0x0, mask: 0xffffffff
  186. Unknown VR
  187. param 2: UNKNOWN
  188. value: 0x0, mask: 0xffffffff
  189. Unknown VR
  190. callsite prvProcessReceivedCommands/27 -> prvInsertTimerInActiveList/26 :
  191. param 0: UNKNOWN
  192. value: 0x0, mask: 0xffffffff
  193. VR ~[0, 0]
  194. param 1: UNKNOWN
  195. value: 0x0, mask: 0xffffffff
  196. Unknown VR
  197. param 2: UNKNOWN
  198. value: 0x0, mask: 0xffffffff
  199. Unknown VR
  200. param 3: UNKNOWN
  201. value: 0x0, mask: 0xffffffff
  202. Unknown VR
  203. callsite prvProcessReceivedCommands/27 -> prvSampleTimeNow/25 :
  204. param 0: UNKNOWN
  205. value: 0x0, mask: 0xfffffffc
  206. VR ~[0, 0]
  207. indirect simple callsite, calling param -1, offset 0, for stmt _22 (pxTimer_14);
  208. param 0: UNKNOWN
  209. value: 0x0, mask: 0xffffffff
  210. VR ~[0, 0]
  211. indirect simple callsite, calling param -1, offset 0, for stmt _2 (_3, _4);
  212. param 0: UNKNOWN
  213. value: 0x0, mask: 0xffffffff
  214. Unknown VR
  215. param 1: UNKNOWN
  216. value: 0x0, mask: 0xffffffff
  217. Unknown VR
  218. Jump functions of caller prvInsertTimerInActiveList/26:
  219. callsite prvInsertTimerInActiveList/26 -> prvInsertTimerInActiveList.part.0/57 :
  220. param 0: PASS THROUGH: 0, op nop_expr
  221. value: 0x0, mask: 0xffffffff
  222. Unknown VR
  223. Jump functions of caller prvSampleTimeNow/25:
  224. callsite prvSampleTimeNow/25 -> prvSwitchTimerLists/28 :
  225. Jump functions of caller prvGetNextExpireTime/24:
  226. Jump functions of caller prvProcessTimerOrBlockTask/23:
  227. callsite prvProcessTimerOrBlockTask/23 -> prvProcessExpiredTimer/21 :
  228. param 0: PASS THROUGH: 0, op nop_expr
  229. value: 0x0, mask: 0xffffffff
  230. Unknown VR
  231. param 1: UNKNOWN
  232. value: 0x0, mask: 0xffffffff
  233. Unknown VR
  234. callsite prvProcessTimerOrBlockTask/23 -> prvSampleTimeNow/25 :
  235. param 0: UNKNOWN
  236. value: 0x0, mask: 0xfffffffc
  237. VR ~[0, 0]
  238. Jump functions of caller prvTimerTask/22:
  239. callsite prvTimerTask/22 -> prvProcessReceivedCommands/27 :
  240. callsite prvTimerTask/22 -> prvProcessTimerOrBlockTask/23 :
  241. param 0: UNKNOWN
  242. value: 0x0, mask: 0xffffffff
  243. Unknown VR
  244. param 1: UNKNOWN
  245. value: 0x0, mask: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  246. Unknown VR
  247. callsite prvTimerTask/22 -> prvGetNextExpireTime/24 :
  248. param 0: UNKNOWN
  249. value: 0x0, mask: 0xfffffffc
  250. VR ~[0, 0]
  251. Jump functions of caller prvProcessExpiredTimer/21:
  252. callsite prvProcessExpiredTimer/21 -> prvReloadTimer/20 :
  253. param 0: UNKNOWN
  254. value: 0x0, mask: 0xffffffff
  255. Unknown VR
  256. param 1: PASS THROUGH: 0, op nop_expr
  257. value: 0x0, mask: 0xffffffff
  258. Unknown VR
  259. param 2: PASS THROUGH: 1, op nop_expr
  260. value: 0x0, mask: 0xffffffff
  261. Unknown VR
  262. indirect simple callsite, calling param -1, offset 0, for stmt _6 (pxTimer_9);
  263. param 0: UNKNOWN
  264. value: 0x0, mask: 0xffffffff
  265. Unknown VR
  266. Jump functions of caller prvReloadTimer/20:
  267. callsite prvReloadTimer/20 -> prvInsertTimerInActiveList/26 :
  268. param 0: PASS THROUGH: 0, op nop_expr
  269. value: 0x0, mask: 0xffffffff
  270. Unknown VR
  271. param 1: UNKNOWN
  272. value: 0x0, mask: 0xffffffff
  273. Unknown VR
  274. param 2: PASS THROUGH: 2, op nop_expr
  275. value: 0x0, mask: 0xffffffff
  276. Unknown VR
  277. param 3: UNKNOWN
  278. value: 0x0, mask: 0xffffffff
  279. Unknown VR
  280. indirect aggregate callsite, calling param 0, offset 256, by reference, for stmt _2 (pxTimer_10(D));
  281. param 0: PASS THROUGH: 0, op nop_expr
  282. value: 0x0, mask: 0xffffffff
  283. Unknown VR
  284. Jump functions of caller pcTimerGetName/19:
  285. Jump functions of caller xTimerGetExpiryTime/18:
  286. Jump functions of caller uxTimerGetReloadMode/17:
  287. Jump functions of caller vTimerSetReloadMode/16:
  288. Jump functions of caller xTimerGetPeriod/15:
  289. Jump functions of caller xTimerGetTimerDaemonTaskHandle/14:
  290. Jump functions of caller xTimerGenericCommand/13:
  291. Jump functions of caller prvInitialiseNewTimer/12:
  292. callsite prvInitialiseNewTimer/12 -> prvCheckForValidListAndQueue/29 :
  293. Jump functions of caller xTimerCreate/11:
  294. callsite xTimerCreate/11 -> prvInitialiseNewTimer/12 :
  295. param 0: PASS THROUGH: 0, op nop_expr
  296. value: 0x0, mask: 0xffffffff
  297. Unknown VR
  298. param 1: PASS THROUGH: 1, op nop_expr
  299. value: 0x0, mask: 0xffffffff
  300. Unknown VR
  301. param 2: PASS THROUGH: 2, op nop_expr
  302. value: 0x0, mask: 0xffffffff
  303. Unknown VR
  304. param 3: PASS THROUGH: 3, op nop_expr
  305. value: 0x0, mask: 0xffffffff
  306. Unknown VR
  307. param 4: PASS THROUGH: 4, op nop_expr
  308. value: 0x0, mask: 0xffffffff
  309. Unknown VR
  310. param 5: UNKNOWN
  311. Aggregate passed by reference:
  312. offset: 320, cst: 0
  313. value: 0x0, mask: 0xffffffff
  314. Unknown VR
  315. Jump functions of caller xTimerCreateTimerTask/10:
  316. callsite xTimerCreateTimerTask/10 -> prvCheckForValidListAndQueue/29 :
  317. Propagating constants:
  318. Not considering vTimerSetTimerNumber for cloning; -fipa-cp-clone disabled.
  319. Not considering uxTimerGetTimerNumber for cloning; -fipa-cp-clone disabled.
  320. Not considering xTimerPendFunctionCall for cloning; -fipa-cp-clone disabled.
  321. Not considering xTimerPendFunctionCallFromISR for cloning; -fipa-cp-clone disabled.
  322. Not considering vTimerSetTimerID for cloning; -fipa-cp-clone disabled.
  323. Not considering pvTimerGetTimerID for cloning; -fipa-cp-clone disabled.
  324. Not considering xTimerIsTimerActive for cloning; -fipa-cp-clone disabled.
  325. Not considering prvTimerTask for cloning; -fipa-cp-clone disabled.
  326. Not considering pcTimerGetName for cloning; -fipa-cp-clone disabled.
  327. Not considering xTimerGetExpiryTime for cloning; -fipa-cp-clone disabled.
  328. Not considering uxTimerGetReloadMode for cloning; -fipa-cp-clone disabled.
  329. Not considering vTimerSetReloadMode for cloning; -fipa-cp-clone disabled.
  330. Not considering xTimerGetPeriod for cloning; -fipa-cp-clone disabled.
  331. Not considering xTimerGetTimerDaemonTaskHandle for cloning; -fipa-cp-clone disabled.
  332. Not considering xTimerGenericCommand for cloning; -fipa-cp-clone disabled.
  333. Not considering xTimerCreate for cloning; -fipa-cp-clone disabled.
  334. Not considering xTimerCreateTimerTask for cloning; -fipa-cp-clone disabled.
  335. overall_size: 561, max_new_size: 11001
  336. - context independent values, size: 10, time_benefit: 1.000000
  337. - context independent values, size: 22, time_benefit: 0.000000
  338. Decided to specialize for all known contexts, code not going to grow.
  339. IPA lattices after all propagation:
  340. Lattices:
  341. Node: prvInsertTimerInActiveList.part.0/57:
  342. param [0]: VARIABLE
  343. ctxs: VARIABLE
  344. Bits unusable (BOTTOM)
  345. VARYING
  346. AGGS VARIABLE
  347. Node: vTimerSetTimerNumber/36:
  348. param [0]: BOTTOM
  349. ctxs: BOTTOM
  350. Bits unusable (BOTTOM)
  351. VARYING
  352. AGGS BOTTOM
  353. param [1]: BOTTOM
  354. ctxs: BOTTOM
  355. Bits unusable (BOTTOM)
  356. VARYING
  357. AGGS BOTTOM
  358. Node: uxTimerGetTimerNumber/35:
  359. param [0]: BOTTOM
  360. ctxs: BOTTOM
  361. Bits unusable (BOTTOM)
  362. VARYING
  363. AGGS BOTTOM
  364. Node: xTimerPendFunctionCall/34:
  365. param [0]: BOTTOM
  366. ctxs: BOTTOM
  367. Bits unusable (BOTTOM)
  368. VARYING
  369. AGGS BOTTOM
  370. param [1]: BOTTOM
  371. ctxs: BOTTOM
  372. Bits unusable (BOTTOM)
  373. VARYING
  374. AGGS BOTTOM
  375. param [2]: BOTTOM
  376. ctxs: BOTTOM
  377. Bits unusable (BOTTOM)
  378. VARYING
  379. AGGS BOTTOM
  380. param [3]: BOTTOM
  381. ctxs: BOTTOM
  382. Bits unusable (BOTTOM)
  383. VARYING
  384. AGGS BOTTOM
  385. Node: xTimerPendFunctionCallFromISR/33:
  386. param [0]: BOTTOM
  387. ctxs: BOTTOM
  388. Bits unusable (BOTTOM)
  389. VARYING
  390. AGGS BOTTOM
  391. param [1]: BOTTOM
  392. ctxs: BOTTOM
  393. Bits unusable (BOTTOM)
  394. VARYING
  395. AGGS BOTTOM
  396. param [2]: BOTTOM
  397. ctxs: BOTTOM
  398. Bits unusable (BOTTOM)
  399. VARYING
  400. AGGS BOTTOM
  401. param [3]: BOTTOM
  402. ctxs: BOTTOM
  403. Bits unusable (BOTTOM)
  404. VARYING
  405. AGGS BOTTOM
  406. Node: vTimerSetTimerID/32:
  407. param [0]: BOTTOM
  408. ctxs: BOTTOM
  409. Bits unusable (BOTTOM)
  410. VARYING
  411. AGGS BOTTOM
  412. param [1]: BOTTOM
  413. ctxs: BOTTOM
  414. Bits unusable (BOTTOM)
  415. VARYING
  416. AGGS BOTTOM
  417. Node: pvTimerGetTimerID/31:
  418. param [0]: BOTTOM
  419. ctxs: BOTTOM
  420. Bits unusable (BOTTOM)
  421. VARYING
  422. AGGS BOTTOM
  423. Node: xTimerIsTimerActive/30:
  424. param [0]: BOTTOM
  425. ctxs: BOTTOM
  426. Bits unusable (BOTTOM)
  427. VARYING
  428. AGGS BOTTOM
  429. Node: prvCheckForValidListAndQueue/29:
  430. Node: prvSwitchTimerLists/28:
  431. Node: prvProcessReceivedCommands/27:
  432. Node: prvInsertTimerInActiveList/26:
  433. param [0]: VARIABLE
  434. ctxs: VARIABLE
  435. Bits unusable (BOTTOM)
  436. VARYING
  437. AGGS VARIABLE
  438. param [1]: VARIABLE
  439. ctxs: VARIABLE
  440. Bits unusable (BOTTOM)
  441. VARYING
  442. AGGS VARIABLE
  443. param [2]: VARIABLE
  444. 4294967295 [loc_time: 1, loc_size: 22, prop_time: 0, prop_size: 0]
  445. ctxs: VARIABLE
  446. Bits unusable (BOTTOM)
  447. VARYING
  448. AGGS VARIABLE
  449. param [3]: VARIABLE
  450. ctxs: VARIABLE
  451. Bits unusable (BOTTOM)
  452. VARYING
  453. AGGS VARIABLE
  454. Node: prvSampleTimeNow/25:
  455. param [0]: VARIABLE
  456. ctxs: VARIABLE
  457. Bits: value = 0x0, mask = 0xfffffffc
  458. BaseType_t * const ~[0B, 0B]
  459. AGGS VARIABLE
  460. Node: prvGetNextExpireTime/24:
  461. param [0]: VARIABLE
  462. ctxs: VARIABLE
  463. Bits: value = 0x0, mask = 0xfffffffc
  464. BaseType_t * const ~[0B, 0B]
  465. AGGS VARIABLE
  466. Node: prvProcessTimerOrBlockTask/23:
  467. param [0]: VARIABLE
  468. ctxs: VARIABLE
  469. Bits unusable (BOTTOM)
  470. VARYING
  471. AGGS VARIABLE
  472. param [1]: VARIABLE
  473. ctxs: VARIABLE
  474. Bits unusable (BOTTOM)
  475. VARYING
  476. AGGS VARIABLE
  477. Node: prvTimerTask/22:
  478. param [0]: BOTTOM
  479. ctxs: BOTTOM
  480. Bits unusable (BOTTOM)
  481. VARYING
  482. AGGS BOTTOM
  483. Node: prvProcessExpiredTimer/21:
  484. param [0]: VARIABLE
  485. ctxs: VARIABLE
  486. Bits unusable (BOTTOM)
  487. VARYING
  488. AGGS VARIABLE
  489. param [1]: VARIABLE
  490. 4294967295 [loc_time: 1, loc_size: 23, prop_time: 0, prop_size: 0]
  491. ctxs: VARIABLE
  492. Bits unusable (BOTTOM)
  493. VARYING
  494. AGGS VARIABLE
  495. Node: prvReloadTimer/20:
  496. param [0]: VARIABLE
  497. ctxs: VARIABLE
  498. Bits unusable (BOTTOM)
  499. VARYING
  500. AGGS VARIABLE
  501. param [1]: VARIABLE
  502. ctxs: VARIABLE
  503. Bits unusable (BOTTOM)
  504. VARYING
  505. AGGS VARIABLE
  506. param [2]: VARIABLE
  507. 4294967295 [loc_time: 1, loc_size: 20, prop_time: 0, prop_size: 0]
  508. ctxs: VARIABLE
  509. Bits unusable (BOTTOM)
  510. VARYING
  511. AGGS VARIABLE
  512. Node: pcTimerGetName/19:
  513. param [0]: BOTTOM
  514. ctxs: BOTTOM
  515. Bits unusable (BOTTOM)
  516. VARYING
  517. AGGS BOTTOM
  518. Node: xTimerGetExpiryTime/18:
  519. param [0]: BOTTOM
  520. ctxs: BOTTOM
  521. Bits unusable (BOTTOM)
  522. VARYING
  523. AGGS BOTTOM
  524. Node: uxTimerGetReloadMode/17:
  525. param [0]: BOTTOM
  526. ctxs: BOTTOM
  527. Bits unusable (BOTTOM)
  528. VARYING
  529. AGGS BOTTOM
  530. Node: vTimerSetReloadMode/16:
  531. param [0]: BOTTOM
  532. ctxs: BOTTOM
  533. Bits unusable (BOTTOM)
  534. VARYING
  535. AGGS BOTTOM
  536. param [1]: BOTTOM
  537. ctxs: BOTTOM
  538. Bits unusable (BOTTOM)
  539. VARYING
  540. AGGS BOTTOM
  541. Node: xTimerGetPeriod/15:
  542. param [0]: BOTTOM
  543. ctxs: BOTTOM
  544. Bits unusable (BOTTOM)
  545. VARYING
  546. AGGS BOTTOM
  547. Node: xTimerGetTimerDaemonTaskHandle/14:
  548. Node: xTimerGenericCommand/13:
  549. param [0]: BOTTOM
  550. ctxs: BOTTOM
  551. Bits unusable (BOTTOM)
  552. VARYING
  553. AGGS BOTTOM
  554. param [1]: BOTTOM
  555. ctxs: BOTTOM
  556. Bits unusable (BOTTOM)
  557. VARYING
  558. AGGS BOTTOM
  559. param [2]: BOTTOM
  560. ctxs: BOTTOM
  561. Bits unusable (BOTTOM)
  562. VARYING
  563. AGGS BOTTOM
  564. param [3]: BOTTOM
  565. ctxs: BOTTOM
  566. Bits unusable (BOTTOM)
  567. VARYING
  568. AGGS BOTTOM
  569. param [4]: BOTTOM
  570. ctxs: BOTTOM
  571. Bits unusable (BOTTOM)
  572. VARYING
  573. AGGS BOTTOM
  574. Node: prvInitialiseNewTimer/12:
  575. param [0]: VARIABLE
  576. ctxs: VARIABLE
  577. Bits unusable (BOTTOM)
  578. VARYING
  579. AGGS VARIABLE
  580. param [1]: VARIABLE
  581. ctxs: VARIABLE
  582. Bits unusable (BOTTOM)
  583. VARYING
  584. AGGS VARIABLE
  585. param [2]: VARIABLE
  586. ctxs: VARIABLE
  587. Bits unusable (BOTTOM)
  588. VARYING
  589. AGGS VARIABLE
  590. param [3]: VARIABLE
  591. ctxs: VARIABLE
  592. Bits unusable (BOTTOM)
  593. VARYING
  594. AGGS VARIABLE
  595. param [4]: VARIABLE
  596. ctxs: VARIABLE
  597. Bits unusable (BOTTOM)
  598. VARYING
  599. AGGS VARIABLE
  600. param [5]: VARIABLE
  601. ctxs: VARIABLE
  602. Bits unusable (BOTTOM)
  603. VARYING
  604. ref offset 320: 0 [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
  605. Node: xTimerCreate/11:
  606. param [0]: BOTTOM
  607. ctxs: BOTTOM
  608. Bits unusable (BOTTOM)
  609. VARYING
  610. AGGS BOTTOM
  611. param [1]: BOTTOM
  612. ctxs: BOTTOM
  613. Bits unusable (BOTTOM)
  614. VARYING
  615. AGGS BOTTOM
  616. param [2]: BOTTOM
  617. ctxs: BOTTOM
  618. Bits unusable (BOTTOM)
  619. VARYING
  620. AGGS BOTTOM
  621. param [3]: BOTTOM
  622. ctxs: BOTTOM
  623. Bits unusable (BOTTOM)
  624. VARYING
  625. AGGS BOTTOM
  626. param [4]: BOTTOM
  627. ctxs: BOTTOM
  628. Bits unusable (BOTTOM)
  629. VARYING
  630. AGGS BOTTOM
  631. Node: xTimerCreateTimerTask/10:
  632. IPA decision stage:
  633. - Creating a specialized node of prvInitialiseNewTimer/12 for all known contexts.
  634. Propagated bits info for function prvSampleTimeNow/25:
  635. param 0: value = 0x0, mask = 0xfffffffc
  636. Propagated bits info for function prvGetNextExpireTime/24:
  637. param 0: value = 0x0, mask = 0xfffffffc
  638. IPA constant propagation end
  639. Reclaiming functions: prvInitialiseNewTimer/12
  640. Reclaiming variables:
  641. Clearing address taken flags:
  642. Symbol table:
  643. prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05dfbd20
  644. Type: function definition analyzed
  645. Visibility:
  646. References:
  647. Referring:
  648. Clone of prvInitialiseNewTimer/12
  649. Availability: local
  650. Function flags: count:160260 (estimated locally) local optimize_size
  651. Called by: xTimerCreate/11 (574129754 (estimated locally),0.53 per call)
  652. Calls: prvCheckForValidListAndQueue/29 (52886 (estimated locally),0.33 per call) vListInitialiseItem/53 (52886 (estimated locally),0.33 per call)
  653. prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05dfba80
  654. Type: function definition analyzed
  655. Visibility: prevailing_def_ironly artificial
  656. References: pxOverflowTimerList/7 (read)
  657. Referring:
  658. Availability: local
  659. Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  660. Called by: prvInsertTimerInActiveList/26 (177167400 (estimated locally),0.16 per call)
  661. Calls: vListInsert/44 (1073741824 (estimated locally),1.00 per call)
  662. xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f06c40
  663. Type: function
  664. Visibility: external public
  665. References:
  666. Referring:
  667. Availability: not_available
  668. Function flags: optimize_size
  669. Called by: xTimerPendFunctionCallFromISR/33 (1073741824 (estimated locally),1.00 per call) xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  670. Calls:
  671. xQueueGenericSend/55 (xQueueGenericSend) @05f06b60
  672. Type: function
  673. Visibility: external public
  674. References:
  675. Referring:
  676. Availability: not_available
  677. Function flags: optimize_size
  678. Called by: xTimerPendFunctionCall/34 (123389 (estimated locally),0.53 per call) xTimerGenericCommand/13 (57875 (estimated locally),0.16 per call) xTimerGenericCommand/13 (29814 (estimated locally),0.08 per call)
  679. Calls:
  680. xTaskGetSchedulerState/54 (xTaskGetSchedulerState) @05f06a80
  681. Type: function
  682. Visibility: external public
  683. References:
  684. Referring:
  685. Availability: not_available
  686. Function flags: optimize_size
  687. Called by: xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  688. Calls:
  689. vListInitialiseItem/53 (vListInitialiseItem) @05f068c0
  690. Type: function
  691. Visibility: external public
  692. References:
  693. Referring:
  694. Availability: not_available
  695. Function flags: optimize_size
  696. Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call)
  697. Calls:
  698. pvPortMalloc/52 (pvPortMalloc) @05f06700
  699. Type: function
  700. Visibility: external public
  701. References:
  702. Referring:
  703. Availability: not_available
  704. Function flags: optimize_size
  705. Called by: xTimerCreate/11 (1073741824 (estimated locally),1.00 per call)
  706. Calls:
  707. vPortExitCritical/51 (vPortExitCritical) @05f06460
  708. Type: function
  709. Visibility: external public
  710. References:
  711. Referring:
  712. Availability: not_available
  713. Function flags: optimize_size
  714. Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call)
  715. Calls:
  716. vQueueAddToRegistry/50 (vQueueAddToRegistry) @05f06380
  717. Type: function
  718. Visibility: external public
  719. References:
  720. Referring:
  721. Availability: not_available
  722. Function flags: optimize_size
  723. Called by: prvCheckForValidListAndQueue/29 (100070816 (estimated locally),0.09 per call)
  724. Calls:
  725. xQueueGenericCreate/49 (xQueueGenericCreate) @05f062a0
  726. Type: function
  727. Visibility: external public
  728. References:
  729. Referring:
  730. Availability: not_available
  731. Function flags: optimize_size
  732. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  733. Calls:
  734. vListInitialise/48 (vListInitialise) @05f060e0
  735. Type: function
  736. Visibility: external public
  737. References:
  738. Referring:
  739. Availability: not_available
  740. Function flags: optimize_size
  741. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  742. Calls:
  743. vPortEnterCritical/47 (vPortEnterCritical) @05f06000
  744. Type: function
  745. Visibility: external public
  746. References:
  747. Referring:
  748. Availability: not_available
  749. Function flags: optimize_size
  750. Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call)
  751. Calls:
  752. xQueueReceive/46 (xQueueReceive) @05ed9e00
  753. Type: function
  754. Visibility: external public
  755. References:
  756. Referring:
  757. Availability: not_available
  758. Function flags: optimize_size
  759. Called by: prvProcessReceivedCommands/27 (187807075 (estimated locally),17.99 per call)
  760. Calls:
  761. vPortFree/45 (vPortFree) @05ed9d20
  762. Type: function
  763. Visibility: external public
  764. References:
  765. Referring:
  766. Availability: not_available
  767. Function flags: optimize_size
  768. Called by: prvProcessReceivedCommands/27 (644244 (estimated locally),0.06 per call)
  769. Calls:
  770. vListInsert/44 (vListInsert) @05ed99a0
  771. Type: function
  772. Visibility: external public
  773. References:
  774. Referring:
  775. Availability: not_available
  776. Function flags: optimize_size
  777. Called by: prvInsertTimerInActiveList/26 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (1073741824 (estimated locally),1.00 per call)
  778. Calls:
  779. uxListRemove/43 (uxListRemove) @05ed9700
  780. Type: function
  781. Visibility: external public
  782. References:
  783. Referring:
  784. Availability: not_available
  785. Function flags: optimize_size
  786. Called by: prvProcessReceivedCommands/27 (5219353 (estimated locally),0.50 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call)
  787. Calls:
  788. xLastTime.6551/42 (xLastTime) @05ef6120
  789. Type: variable definition analyzed
  790. Visibility: prevailing_def_ironly
  791. References:
  792. Referring: prvSampleTimeNow/25 (read)prvSampleTimeNow/25 (write)
  793. Availability: available
  794. Varpool flags: initialized
  795. xTaskGetTickCount/41 (xTaskGetTickCount) @05ed9380
  796. Type: function
  797. Visibility: external public
  798. References:
  799. Referring:
  800. Availability: not_available
  801. Function flags: optimize_size
  802. Called by: prvSampleTimeNow/25 (1073741824 (estimated locally),1.00 per call)
  803. Calls:
  804. vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05ed91c0
  805. Type: function
  806. Visibility: external public
  807. References:
  808. Referring:
  809. Availability: not_available
  810. Function flags: optimize_size
  811. Called by: prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call)
  812. Calls:
  813. xTaskResumeAll/39 (xTaskResumeAll) @05ed90e0
  814. Type: function
  815. Visibility: external public
  816. References:
  817. Referring:
  818. Availability: not_available
  819. Function flags: optimize_size
  820. Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),0.33 per call) prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call)
  821. Calls:
  822. vTaskSuspendAll/38 (vTaskSuspendAll) @05ed9000
  823. Type: function
  824. Visibility: external public
  825. References:
  826. Referring:
  827. Availability: not_available
  828. Function flags: optimize_size
  829. Called by: prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call)
  830. Calls:
  831. xTaskCreate/37 (xTaskCreate) @05ecdee0
  832. Type: function
  833. Visibility: external public
  834. References:
  835. Referring:
  836. Availability: not_available
  837. Function flags: optimize_size
  838. Called by: xTimerCreateTimerTask/10 (78363 (estimated locally),0.53 per call)
  839. Calls:
  840. vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05ecda80
  841. Type: function definition analyzed
  842. Visibility: externally_visible public
  843. References:
  844. Referring:
  845. Availability: available
  846. Function flags: count:1073741824 (estimated locally) body optimize_size
  847. Called by:
  848. Calls:
  849. uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05ecd7e0
  850. Type: function definition analyzed
  851. Visibility: externally_visible public
  852. References:
  853. Referring:
  854. Availability: available
  855. Function flags: count:1073741824 (estimated locally) body optimize_size
  856. Called by:
  857. Calls:
  858. xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05ecd540
  859. Type: function definition analyzed
  860. Visibility: externally_visible public
  861. References: xTimerQueue/8 (read)
  862. Referring:
  863. Availability: available
  864. Function flags: count:230763 (estimated locally) body optimize_size
  865. Called by:
  866. Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call)
  867. xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05ecd0e0
  868. Type: function definition analyzed
  869. Visibility: externally_visible public
  870. References: xTimerQueue/8 (read)
  871. Referring:
  872. Availability: available
  873. Function flags: count:1073741824 (estimated locally) body optimize_size
  874. Called by:
  875. Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call)
  876. vTimerSetTimerID/32 (vTimerSetTimerID) @05ec78c0
  877. Type: function definition analyzed
  878. Visibility: externally_visible public
  879. References:
  880. Referring:
  881. Availability: available
  882. Function flags: count:230763 (estimated locally) body optimize_size
  883. Called by:
  884. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  885. pvTimerGetTimerID/31 (pvTimerGetTimerID) @05ec7ee0
  886. Type: function definition analyzed
  887. Visibility: externally_visible public
  888. References:
  889. Referring:
  890. Availability: available
  891. Function flags: count:230763 (estimated locally) body optimize_size
  892. Called by:
  893. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  894. xTimerIsTimerActive/30 (xTimerIsTimerActive) @05ec7b60
  895. Type: function definition analyzed
  896. Visibility: externally_visible public
  897. References:
  898. Referring:
  899. Availability: available
  900. Function flags: count:230763 (estimated locally) body optimize_size
  901. Called by:
  902. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  903. prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05ec77e0
  904. Type: function definition analyzed
  905. Visibility: prevailing_def_ironly
  906. References: xTimerQueue/8 (read)xActiveTimerList1/4 (addr)xActiveTimerList2/5 (addr)pxCurrentTimerList/6 (write)xActiveTimerList1/4 (addr)pxOverflowTimerList/7 (write)xActiveTimerList2/5 (addr)xTimerQueue/8 (write)
  907. Referring:
  908. Availability: local
  909. Function flags: count:1073741824 (estimated locally) body local optimize_size
  910. Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call)
  911. Calls: vPortExitCritical/51 (1073741824 (estimated locally),1.00 per call) vQueueAddToRegistry/50 (100070816 (estimated locally),0.09 per call) xQueueGenericCreate/49 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vPortEnterCritical/47 (1073741824 (estimated locally),1.00 per call)
  912. prvSwitchTimerLists/28 (prvSwitchTimerLists) @05ec7460
  913. Type: function definition analyzed
  914. Visibility: prevailing_def_ironly
  915. References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write)
  916. Referring:
  917. Availability: local
  918. Function flags: count:118111600 (estimated locally) body local optimize_size
  919. Called by: prvSampleTimeNow/25 (354334802 (estimated locally),0.33 per call)
  920. Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call)
  921. prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05ec70e0
  922. Type: function definition analyzed
  923. Visibility: prevailing_def_ironly
  924. References: xTimerQueue/8 (read)
  925. Referring:
  926. Availability: local
  927. Function flags: count:10436763 (estimated locally) body local optimize_size
  928. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  929. Calls: xQueueReceive/46 (187807075 (estimated locally),17.99 per call) vPortFree/45 (644244 (estimated locally),0.06 per call) prvInsertTimerInActiveList/26 (1844881 (estimated locally),0.18 per call) prvReloadTimer/20 (322122 (estimated locally),0.03 per call) prvInsertTimerInActiveList/26 (1952255 (estimated locally),0.19 per call) prvSampleTimeNow/25 (9761273 (estimated locally),0.94 per call) uxListRemove/43 (5219353 (estimated locally),0.50 per call)
  930. Indirect call(976127 (estimated locally),0.09 per call)
  931. Indirect call(72765851 (estimated locally),6.97 per call)
  932. prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05ebb7e0
  933. Type: function definition analyzed
  934. Visibility: prevailing_def_ironly
  935. References: pxCurrentTimerList/6 (read)
  936. Referring:
  937. Availability: local
  938. Function flags: count:1073741824 (estimated locally) body local optimize_size
  939. Called by: prvProcessReceivedCommands/27 (1844881 (estimated locally),0.18 per call) prvProcessReceivedCommands/27 (1952255 (estimated locally),0.19 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call)
  940. Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (177167400 (estimated locally),0.16 per call)
  941. prvSampleTimeNow/25 (prvSampleTimeNow) @05ebbd20
  942. Type: function definition analyzed
  943. Visibility: prevailing_def_ironly
  944. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  945. Referring:
  946. Availability: local
  947. Function flags: count:1073741824 (estimated locally) body local optimize_size
  948. Called by: prvProcessReceivedCommands/27 (9761273 (estimated locally),0.94 per call) prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call)
  949. Calls: prvSwitchTimerLists/28 (354334802 (estimated locally),0.33 per call) xTaskGetTickCount/41 (1073741824 (estimated locally),1.00 per call)
  950. prvGetNextExpireTime/24 (prvGetNextExpireTime) @05ebba80
  951. Type: function definition analyzed
  952. Visibility: prevailing_def_ironly
  953. References: pxCurrentTimerList/6 (read)
  954. Referring:
  955. Availability: local
  956. Function flags: count:1073741824 (estimated locally) body local optimize_size
  957. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  958. Calls:
  959. prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05ebb700
  960. Type: function definition analyzed
  961. Visibility: prevailing_def_ironly
  962. References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read)
  963. Referring:
  964. Availability: local
  965. Function flags: count:1073741823 (estimated locally) body local optimize_size
  966. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  967. Calls: xTaskResumeAll/39 (354334802 (estimated locally),0.33 per call) xTaskResumeAll/39 (600704864 (estimated locally),0.56 per call) vQueueWaitForMessageRestricted/40 (600704864 (estimated locally),0.56 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),0.11 per call) xTaskResumeAll/39 (118702158 (estimated locally),0.11 per call) prvSampleTimeNow/25 (1073741823 (estimated locally),1.00 per call) vTaskSuspendAll/38 (1073741823 (estimated locally),1.00 per call)
  968. prvTimerTask/22 (prvTimerTask) @05ebb2a0
  969. Type: function definition analyzed
  970. Visibility: prevailing_def_ironly
  971. Address is taken.
  972. References:
  973. Referring: xTimerCreateTimerTask/10 (addr)
  974. Availability: available
  975. Function flags: count:107374 (estimated locally) body executed_once optimize_size
  976. Called by:
  977. Calls: prvProcessReceivedCommands/27 (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (1073741824 (estimated locally),10000.02 per call)
  978. prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05ebb000
  979. Type: function definition analyzed
  980. Visibility: prevailing_def_ironly
  981. References: pxCurrentTimerList/6 (read)
  982. Referring:
  983. Availability: local
  984. Function flags: count:1073741824 (estimated locally) body local optimize_size
  985. Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call)
  986. Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call)
  987. Indirect call(1073741824 (estimated locally),1.00 per call)
  988. prvReloadTimer/20 (prvReloadTimer) @05e60540
  989. Type: function definition analyzed
  990. Visibility: prevailing_def_ironly
  991. References:
  992. Referring:
  993. Availability: local
  994. Function flags: count:118111600 (estimated locally) body local optimize_size
  995. Called by: prvProcessReceivedCommands/27 (322122 (estimated locally),0.03 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call)
  996. Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call)
  997. Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed)
  998. pcTimerGetName/19 (pcTimerGetName) @05e60ee0
  999. Type: function definition analyzed
  1000. Visibility: externally_visible public
  1001. References:
  1002. Referring:
  1003. Availability: available
  1004. Function flags: count:357913 (estimated locally) body optimize_size
  1005. Called by:
  1006. Calls:
  1007. xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05e60b60
  1008. Type: function definition analyzed
  1009. Visibility: externally_visible public
  1010. References:
  1011. Referring:
  1012. Availability: available
  1013. Function flags: count:357913 (estimated locally) body optimize_size
  1014. Called by:
  1015. Calls:
  1016. uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05e607e0
  1017. Type: function definition analyzed
  1018. Visibility: externally_visible public
  1019. References:
  1020. Referring:
  1021. Availability: available
  1022. Function flags: count:230763 (estimated locally) body optimize_size
  1023. Called by:
  1024. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1025. vTimerSetReloadMode/16 (vTimerSetReloadMode) @05e60460
  1026. Type: function definition analyzed
  1027. Visibility: externally_visible public
  1028. References:
  1029. Referring:
  1030. Availability: available
  1031. Function flags: count:230763 (estimated locally) body optimize_size
  1032. Called by:
  1033. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1034. xTimerGetPeriod/15 (xTimerGetPeriod) @05e600e0
  1035. Type: function definition analyzed
  1036. Visibility: externally_visible public
  1037. References:
  1038. Referring:
  1039. Availability: available
  1040. Function flags: count:357913 (estimated locally) body optimize_size
  1041. Called by:
  1042. Calls:
  1043. xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05eb67e0
  1044. Type: function definition analyzed
  1045. Visibility: externally_visible public
  1046. References: xTimerTaskHandle/9 (read)
  1047. Referring:
  1048. Availability: available
  1049. Function flags: count:357913 (estimated locally) body optimize_size
  1050. Called by:
  1051. Calls:
  1052. xTimerGenericCommand/13 (xTimerGenericCommand) @05eb61c0
  1053. Type: function definition analyzed
  1054. Visibility: externally_visible public
  1055. References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read)
  1056. Referring:
  1057. Availability: available
  1058. Function flags: count:357913 (estimated locally) body optimize_size
  1059. Called by:
  1060. Calls: xQueueGenericSendFromISR/56 (87689 (estimated locally),0.25 per call) xQueueGenericSend/55 (57875 (estimated locally),0.16 per call) xQueueGenericSend/55 (29814 (estimated locally),0.08 per call) xTaskGetSchedulerState/54 (87689 (estimated locally),0.25 per call)
  1061. prvInitialiseNewTimer/12 (prvInitialiseNewTimer) @05eb6a80
  1062. Type: function
  1063. Body removed by symtab_remove_unreachable_nodes
  1064. Visibility: prevailing_def_ironly
  1065. References:
  1066. Referring:
  1067. Availability: not_available
  1068. Function flags: count:160260 (estimated locally) body optimize_size
  1069. Called by:
  1070. Calls:
  1071. xTimerCreate/11 (xTimerCreate) @05eb6700
  1072. Type: function definition analyzed
  1073. Visibility: externally_visible public
  1074. References:
  1075. Referring:
  1076. Availability: available
  1077. Function flags: count:1073741824 (estimated locally) body optimize_size
  1078. Called by:
  1079. Calls: prvInitialiseNewTimer.constprop/72 (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call)
  1080. xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05eb6460
  1081. Type: function definition analyzed
  1082. Visibility: externally_visible public
  1083. References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr)
  1084. Referring:
  1085. Availability: available
  1086. Function flags: count:146556 (estimated locally) body optimize_size
  1087. Called by:
  1088. Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call)
  1089. xTimerTaskHandle/9 (xTimerTaskHandle) @05eb0678
  1090. Type: variable definition analyzed
  1091. Visibility: prevailing_def_ironly
  1092. References:
  1093. Referring: xTimerCreateTimerTask/10 (addr)xTimerGetTimerDaemonTaskHandle/14 (read)
  1094. Availability: available
  1095. Varpool flags: initialized
  1096. xTimerQueue/8 (xTimerQueue) @05eb05e8
  1097. Type: variable definition analyzed
  1098. Visibility: prevailing_def_ironly
  1099. References:
  1100. Referring: prvProcessReceivedCommands/27 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCallFromISR/33 (read)prvCheckForValidListAndQueue/29 (write)xTimerCreateTimerTask/10 (read)prvCheckForValidListAndQueue/29 (read)prvProcessTimerOrBlockTask/23 (read)xTimerGenericCommand/13 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCall/34 (read)
  1101. Availability: available
  1102. Varpool flags: initialized
  1103. pxOverflowTimerList/7 (pxOverflowTimerList) @05eb0558
  1104. Type: variable definition analyzed
  1105. Visibility: prevailing_def_ironly
  1106. References:
  1107. Referring: prvInsertTimerInActiveList.part.0/57 (read)prvSwitchTimerLists/28 (write)prvProcessTimerOrBlockTask/23 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write)
  1108. Availability: available
  1109. Varpool flags:
  1110. pxCurrentTimerList/6 (pxCurrentTimerList) @05eb04c8
  1111. Type: variable definition analyzed
  1112. Visibility: prevailing_def_ironly
  1113. References:
  1114. Referring: prvSwitchTimerLists/28 (write)prvProcessExpiredTimer/21 (read)prvInsertTimerInActiveList/26 (read)prvGetNextExpireTime/24 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write)
  1115. Availability: available
  1116. Varpool flags:
  1117. xActiveTimerList2/5 (xActiveTimerList2) @05eb0438
  1118. Type: variable definition analyzed
  1119. Visibility: prevailing_def_ironly
  1120. References:
  1121. Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  1122. Availability: available
  1123. Varpool flags:
  1124. xActiveTimerList1/4 (xActiveTimerList1) @05eb03a8
  1125. Type: variable definition analyzed
  1126. Visibility: prevailing_def_ironly
  1127. References:
  1128. Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  1129. Availability: available
  1130. Varpool flags:
  1131. ;; Function prvCheckForValidListAndQueue (prvCheckForValidListAndQueue, funcdef_no=23, decl_uid=6421, cgraph_uid=24, symbol_order=29)
  1132. Modification phase of node prvCheckForValidListAndQueue/29
  1133. prvCheckForValidListAndQueue ()
  1134. {
  1135. struct QueueDefinition * xTimerQueue.17_1;
  1136. struct QueueDefinition * _2;
  1137. <bb 2> [local count: 1073741824]:
  1138. # DEBUG BEGIN_STMT
  1139. vPortEnterCritical ();
  1140. # DEBUG BEGIN_STMT
  1141. xTimerQueue.17_1 = xTimerQueue;
  1142. if (xTimerQueue.17_1 == 0B)
  1143. goto <bb 3>; [17.43%]
  1144. else
  1145. goto <bb 5>; [82.57%]
  1146. <bb 3> [local count: 187153200]:
  1147. # DEBUG BEGIN_STMT
  1148. vListInitialise (&xActiveTimerList1);
  1149. # DEBUG BEGIN_STMT
  1150. vListInitialise (&xActiveTimerList2);
  1151. # DEBUG BEGIN_STMT
  1152. pxCurrentTimerList = &xActiveTimerList1;
  1153. # DEBUG BEGIN_STMT
  1154. pxOverflowTimerList = &xActiveTimerList2;
  1155. # DEBUG BEGIN_STMT
  1156. _2 = xQueueGenericCreate (10, 16, 0);
  1157. xTimerQueue = _2;
  1158. # DEBUG BEGIN_STMT
  1159. if (_2 != 0B)
  1160. goto <bb 4>; [53.47%]
  1161. else
  1162. goto <bb 5>; [46.53%]
  1163. <bb 4> [local count: 100070816]:
  1164. # DEBUG BEGIN_STMT
  1165. vQueueAddToRegistry (_2, "TmrQ");
  1166. <bb 5> [local count: 1073741824]:
  1167. # DEBUG BEGIN_STMT
  1168. # DEBUG BEGIN_STMT
  1169. vPortExitCritical ();
  1170. return;
  1171. }
  1172. ;; Function prvInsertTimerInActiveList (prvInsertTimerInActiveList, funcdef_no=20, decl_uid=6430, cgraph_uid=21, symbol_order=26)
  1173. Modification phase of node prvInsertTimerInActiveList/26
  1174. prvInsertTimerInActiveList (struct Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime)
  1175. {
  1176. BaseType_t xProcessTimerNow;
  1177. long unsigned int _1;
  1178. long unsigned int _2;
  1179. struct List_t * pxCurrentTimerList.15_3;
  1180. struct ListItem_t * _4;
  1181. <bb 2> [local count: 1073741824]:
  1182. # DEBUG BEGIN_STMT
  1183. # DEBUG xProcessTimerNow => 0
  1184. # DEBUG BEGIN_STMT
  1185. pxTimer_8(D)->xTimerListItem.xItemValue = xNextExpiryTime_9(D);
  1186. # DEBUG BEGIN_STMT
  1187. pxTimer_8(D)->xTimerListItem.pvOwner = pxTimer_8(D);
  1188. # DEBUG BEGIN_STMT
  1189. if (xNextExpiryTime_9(D) <= xTimeNow_12(D))
  1190. goto <bb 3>; [50.00%]
  1191. else
  1192. goto <bb 5>; [50.00%]
  1193. <bb 3> [local count: 536870913]:
  1194. # DEBUG BEGIN_STMT
  1195. _1 = xTimeNow_12(D) - xCommandTime_13(D);
  1196. _2 = pxTimer_8(D)->xTimerPeriodInTicks;
  1197. if (_1 >= _2)
  1198. goto <bb 8>; [67.00%]
  1199. else
  1200. goto <bb 4>; [33.00%]
  1201. <bb 4> [local count: 177167400]:
  1202. # DEBUG D#1 => xNextExpiryTime_9(D)
  1203. # DEBUG D#2 => xTimeNow_12(D)
  1204. # DEBUG D#3 => xCommandTime_13(D)
  1205. xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D));
  1206. goto <bb 8>; [100.00%]
  1207. <bb 5> [local count: 536870913]:
  1208. # DEBUG BEGIN_STMT
  1209. if (xTimeNow_12(D) < xCommandTime_13(D))
  1210. goto <bb 6>; [67.00%]
  1211. else
  1212. goto <bb 7>; [33.00%]
  1213. <bb 6> [local count: 359703511]:
  1214. if (xNextExpiryTime_9(D) >= xCommandTime_13(D))
  1215. goto <bb 8>; [50.00%]
  1216. else
  1217. goto <bb 7>; [50.00%]
  1218. <bb 7> [local count: 357019157]:
  1219. # DEBUG BEGIN_STMT
  1220. pxCurrentTimerList.15_3 = pxCurrentTimerList;
  1221. _4 = &pxTimer_8(D)->xTimerListItem;
  1222. vListInsert (pxCurrentTimerList.15_3, _4);
  1223. <bb 8> [local count: 1073741824]:
  1224. # xProcessTimerNow_5 = PHI <xProcessTimerNow_16(4), 1(6), 0(7), 1(3)>
  1225. # DEBUG xProcessTimerNow => xProcessTimerNow_5
  1226. # DEBUG BEGIN_STMT
  1227. return xProcessTimerNow_5;
  1228. }
  1229. ;; Function prvReloadTimer (prvReloadTimer, funcdef_no=14, decl_uid=6434, cgraph_uid=15, symbol_order=20)
  1230. Modification phase of node prvReloadTimer/20
  1231. prvReloadTimer (struct Timer_t * const pxTimer, TickType_t xExpiredTime, const TickType_t xTimeNow)
  1232. {
  1233. long unsigned int _1;
  1234. void (*<T689>) (struct tmrTimerControl *) _2;
  1235. long unsigned int _3;
  1236. long unsigned int _4;
  1237. long int _5;
  1238. <bb 2> [local count: 118111600]:
  1239. # DEBUG BEGIN_STMT
  1240. goto <bb 4>; [100.00%]
  1241. <bb 3> [local count: 955630223]:
  1242. # DEBUG BEGIN_STMT
  1243. _1 = pxTimer_10(D)->xTimerPeriodInTicks;
  1244. xExpiredTime_13 = _1 + xExpiredTime_6;
  1245. # DEBUG xExpiredTime => xExpiredTime_13
  1246. # DEBUG BEGIN_STMT
  1247. # DEBUG BEGIN_STMT
  1248. _2 = pxTimer_10(D)->pxCallbackFunction;
  1249. _2 (pxTimer_10(D));
  1250. <bb 4> [local count: 1073741824]:
  1251. # xExpiredTime_6 = PHI <xExpiredTime_8(D)(2), xExpiredTime_13(3)>
  1252. # DEBUG xExpiredTime => xExpiredTime_6
  1253. # DEBUG BEGIN_STMT
  1254. _3 = pxTimer_10(D)->xTimerPeriodInTicks;
  1255. _4 = _3 + xExpiredTime_6;
  1256. _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  1257. if (_5 != 0)
  1258. goto <bb 3>; [89.00%]
  1259. else
  1260. goto <bb 5>; [11.00%]
  1261. <bb 5> [local count: 118111601]:
  1262. return;
  1263. }
  1264. ;; Function prvProcessExpiredTimer (prvProcessExpiredTimer, funcdef_no=15, decl_uid=6437, cgraph_uid=16, symbol_order=21)
  1265. Modification phase of node prvProcessExpiredTimer/21
  1266. prvProcessExpiredTimer (const TickType_t xNextExpireTime, const TickType_t xTimeNow)
  1267. {
  1268. struct Timer_t * const pxTimer;
  1269. struct List_t * pxCurrentTimerList.13_1;
  1270. struct xLIST_ITEM * _2;
  1271. struct ListItem_t * _3;
  1272. unsigned char _4;
  1273. unsigned char _5;
  1274. void (*<T689>) (struct tmrTimerControl *) _6;
  1275. unsigned char _16;
  1276. <bb 2> [local count: 1073741824]:
  1277. # DEBUG BEGIN_STMT
  1278. pxCurrentTimerList.13_1 = pxCurrentTimerList;
  1279. _2 = pxCurrentTimerList.13_1->xListEnd.pxNext;
  1280. pxTimer_9 = _2->pvOwner;
  1281. # DEBUG pxTimer => pxTimer_9
  1282. # DEBUG BEGIN_STMT
  1283. _3 = &pxTimer_9->xTimerListItem;
  1284. uxListRemove (_3);
  1285. # DEBUG BEGIN_STMT
  1286. _4 = pxTimer_9->ucStatus;
  1287. _16 = _4 & 4;
  1288. if (_16 != 0)
  1289. goto <bb 3>; [33.00%]
  1290. else
  1291. goto <bb 4>; [67.00%]
  1292. <bb 3> [local count: 354334802]:
  1293. # DEBUG BEGIN_STMT
  1294. prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  1295. goto <bb 5>; [100.00%]
  1296. <bb 4> [local count: 719407023]:
  1297. # DEBUG BEGIN_STMT
  1298. _5 = _4 & 254;
  1299. pxTimer_9->ucStatus = _5;
  1300. <bb 5> [local count: 1073741824]:
  1301. # DEBUG BEGIN_STMT
  1302. # DEBUG BEGIN_STMT
  1303. _6 = pxTimer_9->pxCallbackFunction;
  1304. _6 (pxTimer_9);
  1305. return;
  1306. }
  1307. ;; Function prvSwitchTimerLists (prvSwitchTimerLists, funcdef_no=22, decl_uid=6439, cgraph_uid=23, symbol_order=28)
  1308. Modification phase of node prvSwitchTimerLists/28
  1309. prvSwitchTimerLists ()
  1310. {
  1311. TickType_t xNextExpireTime;
  1312. struct xLIST_ITEM * _1;
  1313. struct List_t * pxCurrentTimerList.11_2;
  1314. long unsigned int _3;
  1315. struct List_t * pxOverflowTimerList.12_4;
  1316. struct List_t * pxCurrentTimerList.11_7;
  1317. <bb 2> [local count: 118111600]:
  1318. # DEBUG BEGIN_STMT
  1319. # DEBUG BEGIN_STMT
  1320. # DEBUG BEGIN_STMT
  1321. goto <bb 4>; [100.00%]
  1322. <bb 3> [local count: 955630223]:
  1323. # DEBUG BEGIN_STMT
  1324. _1 = pxCurrentTimerList.11_2->xListEnd.pxNext;
  1325. xNextExpireTime_10 = _1->xItemValue;
  1326. # DEBUG xNextExpireTime => xNextExpireTime_10
  1327. # DEBUG BEGIN_STMT
  1328. prvProcessExpiredTimer (xNextExpireTime_10, 4294967295);
  1329. <bb 4> [local count: 1073741824]:
  1330. # DEBUG BEGIN_STMT
  1331. pxCurrentTimerList.11_2 = pxCurrentTimerList;
  1332. _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems;
  1333. if (_3 != 0)
  1334. goto <bb 3>; [89.00%]
  1335. else
  1336. goto <bb 5>; [11.00%]
  1337. <bb 5> [local count: 118111601]:
  1338. # pxCurrentTimerList.11_7 = PHI <pxCurrentTimerList.11_2(4)>
  1339. # DEBUG BEGIN_STMT
  1340. # DEBUG pxTemp => pxCurrentTimerList.11_7
  1341. # DEBUG BEGIN_STMT
  1342. pxOverflowTimerList.12_4 = pxOverflowTimerList;
  1343. pxCurrentTimerList = pxOverflowTimerList.12_4;
  1344. # DEBUG BEGIN_STMT
  1345. pxOverflowTimerList = pxCurrentTimerList.11_7;
  1346. return;
  1347. }
  1348. ;; Function prvTimerTask (prvTimerTask, funcdef_no=16, decl_uid=6423, cgraph_uid=17, symbol_order=22) (executed once)
  1349. Modification phase of node prvTimerTask/22
  1350. prvTimerTask (void * pvParameters)
  1351. {
  1352. BaseType_t xListWasEmpty;
  1353. TickType_t xNextExpireTime;
  1354. long int xListWasEmpty.1_1;
  1355. <bb 2> [local count: 107374]:
  1356. <bb 3> [local count: 1073741824]:
  1357. # DEBUG BEGIN_STMT
  1358. # DEBUG BEGIN_STMT
  1359. # DEBUG BEGIN_STMT
  1360. # DEBUG BEGIN_STMT
  1361. # DEBUG BEGIN_STMT
  1362. xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  1363. # DEBUG xNextExpireTime => xNextExpireTime_5
  1364. # DEBUG BEGIN_STMT
  1365. xListWasEmpty.1_1 = xListWasEmpty;
  1366. prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1);
  1367. # DEBUG BEGIN_STMT
  1368. prvProcessReceivedCommands ();
  1369. # DEBUG BEGIN_STMT
  1370. <bb 4> [local count: 1073741824]:
  1371. goto <bb 3>; [100.00%]
  1372. }
  1373. ;; Function xTimerCreateTimerTask (xTimerCreateTimerTask, funcdef_no=4, decl_uid=6377, cgraph_uid=5, symbol_order=10)
  1374. Modification phase of node xTimerCreateTimerTask/10
  1375. xTimerCreateTimerTask ()
  1376. {
  1377. uint32_t ulNewBASEPRI;
  1378. BaseType_t xReturn;
  1379. struct QueueDefinition * xTimerQueue.0_1;
  1380. <bb 2> [local count: 146556]:
  1381. # DEBUG BEGIN_STMT
  1382. # DEBUG xReturn => 0
  1383. # DEBUG BEGIN_STMT
  1384. prvCheckForValidListAndQueue ();
  1385. # DEBUG BEGIN_STMT
  1386. xTimerQueue.0_1 = xTimerQueue;
  1387. if (xTimerQueue.0_1 != 0B)
  1388. goto <bb 4>; [53.47%]
  1389. else
  1390. goto <bb 5>; [46.53%]
  1391. <bb 4> [local count: 78363]:
  1392. # DEBUG BEGIN_STMT
  1393. xReturn_5 = xTaskCreate (prvTimerTask, "Tmr Svc", 180, 0B, 2, &xTimerTaskHandle);
  1394. # DEBUG xReturn => xReturn_5
  1395. # DEBUG BEGIN_STMT
  1396. # DEBUG BEGIN_STMT
  1397. if (xReturn_5 == 0)
  1398. goto <bb 5>; [50.00%]
  1399. else
  1400. goto <bb 7>; [50.00%]
  1401. <bb 5> [local count: 107374]:
  1402. # DEBUG xReturn => NULL
  1403. # DEBUG BEGIN_STMT
  1404. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1405. # DEBUG BEGIN_STMT
  1406. # DEBUG BEGIN_STMT
  1407. __asm__ __volatile__(" mov %0, %1
  1408. msr basepri, %0
  1409. isb
  1410. dsb
  1411. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1412. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1413. <bb 6> [local count: 1073741824]:
  1414. # DEBUG ulNewBASEPRI => NULL
  1415. # DEBUG BEGIN_STMT
  1416. # DEBUG BEGIN_STMT
  1417. # DEBUG BEGIN_STMT
  1418. <bb 8> [local count: 1073741824]:
  1419. goto <bb 6>; [100.00%]
  1420. <bb 7> [local count: 39182]:
  1421. # DEBUG BEGIN_STMT
  1422. # DEBUG BEGIN_STMT
  1423. return xReturn_5;
  1424. }
  1425. ;; Function xTimerCreate (xTimerCreate, funcdef_no=5, decl_uid=6345, cgraph_uid=6, symbol_order=11)
  1426. Modification phase of node xTimerCreate/11
  1427. xTimerCreate (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction)
  1428. {
  1429. struct Timer_t * pxNewTimer;
  1430. <bb 2> [local count: 1073741824]:
  1431. # DEBUG BEGIN_STMT
  1432. # DEBUG BEGIN_STMT
  1433. pxNewTimer_4 = pvPortMalloc (44);
  1434. # DEBUG pxNewTimer => pxNewTimer_4
  1435. # DEBUG BEGIN_STMT
  1436. if (pxNewTimer_4 != 0B)
  1437. goto <bb 3>; [53.47%]
  1438. else
  1439. goto <bb 4>; [46.53%]
  1440. <bb 3> [local count: 574129754]:
  1441. # DEBUG BEGIN_STMT
  1442. pxNewTimer_4->ucStatus = 0;
  1443. # DEBUG BEGIN_STMT
  1444. prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  1445. <bb 4> [local count: 1073741824]:
  1446. # DEBUG BEGIN_STMT
  1447. return pxNewTimer_4;
  1448. }
  1449. ;; Function xTimerGenericCommand (xTimerGenericCommand, funcdef_no=7, decl_uid=6383, cgraph_uid=8, symbol_order=13)
  1450. Modification phase of node xTimerGenericCommand/13
  1451. xTimerGenericCommand (struct tmrTimerControl * xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait)
  1452. {
  1453. uint32_t ulNewBASEPRI;
  1454. struct DaemonTaskMessage_t xMessage;
  1455. BaseType_t xReturn;
  1456. struct QueueDefinition * xTimerQueue.20_1;
  1457. long int _2;
  1458. struct QueueDefinition * xTimerQueue.21_3;
  1459. struct QueueDefinition * xTimerQueue.22_4;
  1460. <bb 2> [local count: 357913]:
  1461. # DEBUG BEGIN_STMT
  1462. # DEBUG xReturn => 0
  1463. # DEBUG BEGIN_STMT
  1464. # DEBUG BEGIN_STMT
  1465. if (xTimer_7(D) == 0B)
  1466. goto <bb 3>; [30.00%]
  1467. else
  1468. goto <bb 5>; [70.00%]
  1469. <bb 3> [local count: 107374]:
  1470. # DEBUG BEGIN_STMT
  1471. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1472. # DEBUG BEGIN_STMT
  1473. # DEBUG BEGIN_STMT
  1474. __asm__ __volatile__(" mov %0, %1
  1475. msr basepri, %0
  1476. isb
  1477. dsb
  1478. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  1479. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  1480. <bb 4> [local count: 1073741824]:
  1481. # DEBUG ulNewBASEPRI => NULL
  1482. # DEBUG BEGIN_STMT
  1483. # DEBUG BEGIN_STMT
  1484. # DEBUG BEGIN_STMT
  1485. <bb 12> [local count: 1073741824]:
  1486. goto <bb 4>; [100.00%]
  1487. <bb 5> [local count: 250539]:
  1488. # DEBUG BEGIN_STMT
  1489. # DEBUG BEGIN_STMT
  1490. xTimerQueue.20_1 = xTimerQueue;
  1491. if (xTimerQueue.20_1 != 0B)
  1492. goto <bb 6>; [70.00%]
  1493. else
  1494. goto <bb 11>; [30.00%]
  1495. <bb 6> [local count: 175378]:
  1496. # DEBUG BEGIN_STMT
  1497. xMessage.xMessageID = xCommandID_9(D);
  1498. # DEBUG BEGIN_STMT
  1499. xMessage.u.xTimerParameters.xMessageValue = xOptionalValue_11(D);
  1500. # DEBUG BEGIN_STMT
  1501. xMessage.u.xTimerParameters.pxTimer = xTimer_7(D);
  1502. # DEBUG BEGIN_STMT
  1503. if (xCommandID_9(D) <= 5)
  1504. goto <bb 7>; [50.00%]
  1505. else
  1506. goto <bb 10>; [50.00%]
  1507. <bb 7> [local count: 87689]:
  1508. # DEBUG BEGIN_STMT
  1509. _2 = xTaskGetSchedulerState ();
  1510. if (_2 == 2)
  1511. goto <bb 8>; [34.00%]
  1512. else
  1513. goto <bb 9>; [66.00%]
  1514. <bb 8> [local count: 29814]:
  1515. # DEBUG BEGIN_STMT
  1516. xTimerQueue.21_3 = xTimerQueue;
  1517. xReturn_22 = xQueueGenericSend (xTimerQueue.21_3, &xMessage, xTicksToWait_20(D), 0);
  1518. # DEBUG xReturn => xReturn_22
  1519. goto <bb 11>; [100.00%]
  1520. <bb 9> [local count: 57875]:
  1521. # DEBUG BEGIN_STMT
  1522. xTimerQueue.22_4 = xTimerQueue;
  1523. xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0);
  1524. # DEBUG xReturn => xReturn_19
  1525. goto <bb 11>; [100.00%]
  1526. <bb 10> [local count: 87689]:
  1527. # DEBUG BEGIN_STMT
  1528. xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0);
  1529. # DEBUG xReturn => xReturn_16
  1530. <bb 11> [local count: 250539]:
  1531. # xReturn_5 = PHI <0(5), xReturn_16(10), xReturn_19(9), xReturn_22(8)>
  1532. # DEBUG xReturn => xReturn_5
  1533. # DEBUG BEGIN_STMT
  1534. # DEBUG BEGIN_STMT
  1535. xMessage ={v} {CLOBBER};
  1536. return xReturn_5;
  1537. }
  1538. ;; Function xTimerGetTimerDaemonTaskHandle (xTimerGetTimerDaemonTaskHandle, funcdef_no=8, decl_uid=6354, cgraph_uid=9, symbol_order=14)
  1539. Modification phase of node xTimerGetTimerDaemonTaskHandle/14
  1540. xTimerGetTimerDaemonTaskHandle ()
  1541. {
  1542. uint32_t ulNewBASEPRI;
  1543. struct tskTaskControlBlock * xTimerTaskHandle.24_1;
  1544. <bb 2> [local count: 357913]:
  1545. # DEBUG BEGIN_STMT
  1546. xTimerTaskHandle.24_1 = xTimerTaskHandle;
  1547. if (xTimerTaskHandle.24_1 == 0B)
  1548. goto <bb 3>; [30.00%]
  1549. else
  1550. goto <bb 5>; [70.00%]
  1551. <bb 3> [local count: 107374]:
  1552. # DEBUG BEGIN_STMT
  1553. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1554. # DEBUG BEGIN_STMT
  1555. # DEBUG BEGIN_STMT
  1556. __asm__ __volatile__(" mov %0, %1
  1557. msr basepri, %0
  1558. isb
  1559. dsb
  1560. " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory");
  1561. # DEBUG ulNewBASEPRI => ulNewBASEPRI_3
  1562. <bb 4> [local count: 1073741824]:
  1563. # DEBUG ulNewBASEPRI => NULL
  1564. # DEBUG BEGIN_STMT
  1565. # DEBUG BEGIN_STMT
  1566. # DEBUG BEGIN_STMT
  1567. <bb 6> [local count: 1073741824]:
  1568. goto <bb 4>; [100.00%]
  1569. <bb 5> [local count: 250539]:
  1570. # DEBUG BEGIN_STMT
  1571. # DEBUG BEGIN_STMT
  1572. return xTimerTaskHandle.24_1;
  1573. }
  1574. ;; Function xTimerGetPeriod (xTimerGetPeriod, funcdef_no=9, decl_uid=6373, cgraph_uid=10, symbol_order=15)
  1575. Modification phase of node xTimerGetPeriod/15
  1576. xTimerGetPeriod (struct tmrTimerControl * xTimer)
  1577. {
  1578. uint32_t ulNewBASEPRI;
  1579. TickType_t _3;
  1580. <bb 2> [local count: 357913]:
  1581. # DEBUG BEGIN_STMT
  1582. # DEBUG pxTimer => xTimer_1(D)
  1583. # DEBUG BEGIN_STMT
  1584. if (xTimer_1(D) == 0B)
  1585. goto <bb 3>; [30.00%]
  1586. else
  1587. goto <bb 5>; [70.00%]
  1588. <bb 3> [local count: 107374]:
  1589. # DEBUG BEGIN_STMT
  1590. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1591. # DEBUG BEGIN_STMT
  1592. # DEBUG BEGIN_STMT
  1593. __asm__ __volatile__(" mov %0, %1
  1594. msr basepri, %0
  1595. isb
  1596. dsb
  1597. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1598. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1599. <bb 4> [local count: 1073741824]:
  1600. # DEBUG ulNewBASEPRI => NULL
  1601. # DEBUG BEGIN_STMT
  1602. # DEBUG BEGIN_STMT
  1603. # DEBUG BEGIN_STMT
  1604. <bb 6> [local count: 1073741824]:
  1605. goto <bb 4>; [100.00%]
  1606. <bb 5> [local count: 250539]:
  1607. # DEBUG BEGIN_STMT
  1608. # DEBUG BEGIN_STMT
  1609. _3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerPeriodInTicks;
  1610. return _3;
  1611. }
  1612. ;; Function vTimerSetReloadMode (vTimerSetReloadMode, funcdef_no=10, decl_uid=6369, cgraph_uid=11, symbol_order=16)
  1613. Modification phase of node vTimerSetReloadMode/16
  1614. vTimerSetReloadMode (struct tmrTimerControl * xTimer, const UBaseType_t uxAutoReload)
  1615. {
  1616. uint32_t ulNewBASEPRI;
  1617. unsigned char _1;
  1618. unsigned char _2;
  1619. unsigned char _3;
  1620. unsigned char _4;
  1621. <bb 2> [local count: 230763]:
  1622. # DEBUG BEGIN_STMT
  1623. # DEBUG pxTimer => xTimer_6(D)
  1624. # DEBUG BEGIN_STMT
  1625. if (xTimer_6(D) == 0B)
  1626. goto <bb 3>; [46.53%]
  1627. else
  1628. goto <bb 5>; [53.47%]
  1629. <bb 3> [local count: 107374]:
  1630. # DEBUG BEGIN_STMT
  1631. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1632. # DEBUG BEGIN_STMT
  1633. # DEBUG BEGIN_STMT
  1634. __asm__ __volatile__(" mov %0, %1
  1635. msr basepri, %0
  1636. isb
  1637. dsb
  1638. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  1639. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  1640. <bb 4> [local count: 1073741824]:
  1641. # DEBUG ulNewBASEPRI => NULL
  1642. # DEBUG BEGIN_STMT
  1643. # DEBUG BEGIN_STMT
  1644. # DEBUG BEGIN_STMT
  1645. <bb 9> [local count: 1073741824]:
  1646. goto <bb 4>; [100.00%]
  1647. <bb 5> [local count: 123389]:
  1648. # DEBUG BEGIN_STMT
  1649. # DEBUG BEGIN_STMT
  1650. vPortEnterCritical ();
  1651. # DEBUG BEGIN_STMT
  1652. if (uxAutoReload_9(D) != 0)
  1653. goto <bb 6>; [50.00%]
  1654. else
  1655. goto <bb 7>; [50.00%]
  1656. <bb 6> [local count: 61694]:
  1657. # DEBUG BEGIN_STMT
  1658. _1 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  1659. _2 = _1 | 4;
  1660. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _2;
  1661. goto <bb 8>; [100.00%]
  1662. <bb 7> [local count: 61694]:
  1663. # DEBUG BEGIN_STMT
  1664. _3 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  1665. _4 = _3 & 251;
  1666. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _4;
  1667. <bb 8> [local count: 123389]:
  1668. # DEBUG BEGIN_STMT
  1669. vPortExitCritical ();
  1670. return;
  1671. }
  1672. ;; Function uxTimerGetReloadMode (uxTimerGetReloadMode, funcdef_no=11, decl_uid=6371, cgraph_uid=12, symbol_order=17)
  1673. Modification phase of node uxTimerGetReloadMode/17
  1674. uxTimerGetReloadMode (struct tmrTimerControl * xTimer)
  1675. {
  1676. uint32_t ulNewBASEPRI;
  1677. UBaseType_t uxReturn;
  1678. unsigned char _1;
  1679. unsigned char _4;
  1680. <bb 2> [local count: 230763]:
  1681. # DEBUG BEGIN_STMT
  1682. # DEBUG pxTimer => xTimer_3(D)
  1683. # DEBUG BEGIN_STMT
  1684. # DEBUG BEGIN_STMT
  1685. if (xTimer_3(D) == 0B)
  1686. goto <bb 3>; [46.53%]
  1687. else
  1688. goto <bb 5>; [53.47%]
  1689. <bb 3> [local count: 107374]:
  1690. # DEBUG BEGIN_STMT
  1691. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1692. # DEBUG BEGIN_STMT
  1693. # DEBUG BEGIN_STMT
  1694. __asm__ __volatile__(" mov %0, %1
  1695. msr basepri, %0
  1696. isb
  1697. dsb
  1698. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1699. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1700. <bb 4> [local count: 1073741824]:
  1701. # DEBUG ulNewBASEPRI => NULL
  1702. # DEBUG BEGIN_STMT
  1703. # DEBUG BEGIN_STMT
  1704. # DEBUG BEGIN_STMT
  1705. <bb 8> [local count: 1073741824]:
  1706. goto <bb 4>; [100.00%]
  1707. <bb 5> [local count: 123389]:
  1708. # DEBUG BEGIN_STMT
  1709. # DEBUG BEGIN_STMT
  1710. vPortEnterCritical ();
  1711. # DEBUG BEGIN_STMT
  1712. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  1713. _4 = _1 & 4;
  1714. if (_4 == 0)
  1715. goto <bb 7>; [50.00%]
  1716. else
  1717. goto <bb 6>; [50.00%]
  1718. <bb 6> [local count: 61694]:
  1719. # DEBUG BEGIN_STMT
  1720. # DEBUG uxReturn => 1
  1721. <bb 7> [local count: 123389]:
  1722. # uxReturn_2 = PHI <0(5), 1(6)>
  1723. # DEBUG uxReturn => uxReturn_2
  1724. # DEBUG BEGIN_STMT
  1725. vPortExitCritical ();
  1726. # DEBUG BEGIN_STMT
  1727. return uxReturn_2;
  1728. }
  1729. ;; Function xTimerGetExpiryTime (xTimerGetExpiryTime, funcdef_no=12, decl_uid=6375, cgraph_uid=13, symbol_order=18)
  1730. Modification phase of node xTimerGetExpiryTime/18
  1731. xTimerGetExpiryTime (struct tmrTimerControl * xTimer)
  1732. {
  1733. uint32_t ulNewBASEPRI;
  1734. TickType_t xReturn;
  1735. <bb 2> [local count: 357913]:
  1736. # DEBUG BEGIN_STMT
  1737. # DEBUG pxTimer => xTimer_1(D)
  1738. # DEBUG BEGIN_STMT
  1739. # DEBUG BEGIN_STMT
  1740. if (xTimer_1(D) == 0B)
  1741. goto <bb 3>; [30.00%]
  1742. else
  1743. goto <bb 5>; [70.00%]
  1744. <bb 3> [local count: 107374]:
  1745. # DEBUG BEGIN_STMT
  1746. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1747. # DEBUG BEGIN_STMT
  1748. # DEBUG BEGIN_STMT
  1749. __asm__ __volatile__(" mov %0, %1
  1750. msr basepri, %0
  1751. isb
  1752. dsb
  1753. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1754. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1755. <bb 4> [local count: 1073741824]:
  1756. # DEBUG ulNewBASEPRI => NULL
  1757. # DEBUG BEGIN_STMT
  1758. # DEBUG BEGIN_STMT
  1759. # DEBUG BEGIN_STMT
  1760. <bb 6> [local count: 1073741824]:
  1761. goto <bb 4>; [100.00%]
  1762. <bb 5> [local count: 250539]:
  1763. # DEBUG BEGIN_STMT
  1764. # DEBUG BEGIN_STMT
  1765. xReturn_3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerListItem.xItemValue;
  1766. # DEBUG xReturn => xReturn_3
  1767. # DEBUG BEGIN_STMT
  1768. return xReturn_3;
  1769. }
  1770. ;; Function pcTimerGetName (pcTimerGetName, funcdef_no=13, decl_uid=6366, cgraph_uid=14, symbol_order=19)
  1771. Modification phase of node pcTimerGetName/19
  1772. pcTimerGetName (struct tmrTimerControl * xTimer)
  1773. {
  1774. uint32_t ulNewBASEPRI;
  1775. const char * _3;
  1776. <bb 2> [local count: 357913]:
  1777. # DEBUG BEGIN_STMT
  1778. # DEBUG pxTimer => xTimer_1(D)
  1779. # DEBUG BEGIN_STMT
  1780. if (xTimer_1(D) == 0B)
  1781. goto <bb 3>; [30.00%]
  1782. else
  1783. goto <bb 5>; [70.00%]
  1784. <bb 3> [local count: 107374]:
  1785. # DEBUG BEGIN_STMT
  1786. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1787. # DEBUG BEGIN_STMT
  1788. # DEBUG BEGIN_STMT
  1789. __asm__ __volatile__(" mov %0, %1
  1790. msr basepri, %0
  1791. isb
  1792. dsb
  1793. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1794. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1795. <bb 4> [local count: 1073741824]:
  1796. # DEBUG ulNewBASEPRI => NULL
  1797. # DEBUG BEGIN_STMT
  1798. # DEBUG BEGIN_STMT
  1799. # DEBUG BEGIN_STMT
  1800. <bb 6> [local count: 1073741824]:
  1801. goto <bb 4>; [100.00%]
  1802. <bb 5> [local count: 250539]:
  1803. # DEBUG BEGIN_STMT
  1804. # DEBUG BEGIN_STMT
  1805. _3 = MEM[(struct Timer_t *)xTimer_1(D)].pcTimerName;
  1806. return _3;
  1807. }
  1808. ;; Function xTimerIsTimerActive (xTimerIsTimerActive, funcdef_no=24, decl_uid=6352, cgraph_uid=25, symbol_order=30)
  1809. Modification phase of node xTimerIsTimerActive/30
  1810. xTimerIsTimerActive (struct tmrTimerControl * xTimer)
  1811. {
  1812. uint32_t ulNewBASEPRI;
  1813. unsigned char _1;
  1814. long int _2;
  1815. unsigned char _4;
  1816. <bb 2> [local count: 230763]:
  1817. # DEBUG BEGIN_STMT
  1818. # DEBUG BEGIN_STMT
  1819. # DEBUG pxTimer => xTimer_3(D)
  1820. # DEBUG BEGIN_STMT
  1821. if (xTimer_3(D) == 0B)
  1822. goto <bb 3>; [46.53%]
  1823. else
  1824. goto <bb 5>; [53.47%]
  1825. <bb 3> [local count: 107374]:
  1826. # DEBUG BEGIN_STMT
  1827. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1828. # DEBUG BEGIN_STMT
  1829. # DEBUG BEGIN_STMT
  1830. __asm__ __volatile__(" mov %0, %1
  1831. msr basepri, %0
  1832. isb
  1833. dsb
  1834. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1835. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1836. <bb 4> [local count: 1073741824]:
  1837. # DEBUG ulNewBASEPRI => NULL
  1838. # DEBUG BEGIN_STMT
  1839. # DEBUG BEGIN_STMT
  1840. # DEBUG BEGIN_STMT
  1841. <bb 6> [local count: 1073741824]:
  1842. goto <bb 4>; [100.00%]
  1843. <bb 5> [local count: 123389]:
  1844. # DEBUG BEGIN_STMT
  1845. # DEBUG BEGIN_STMT
  1846. vPortEnterCritical ();
  1847. # DEBUG BEGIN_STMT
  1848. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  1849. _4 = _1 & 1;
  1850. _2 = (long int) _4;
  1851. # DEBUG xReturn => _2
  1852. # DEBUG BEGIN_STMT
  1853. vPortExitCritical ();
  1854. # DEBUG BEGIN_STMT
  1855. return _2;
  1856. }
  1857. ;; Function pvTimerGetTimerID (pvTimerGetTimerID, funcdef_no=25, decl_uid=6347, cgraph_uid=26, symbol_order=31)
  1858. Modification phase of node pvTimerGetTimerID/31
  1859. pvTimerGetTimerID (struct tmrTimerControl * const xTimer)
  1860. {
  1861. uint32_t ulNewBASEPRI;
  1862. void * pvReturn;
  1863. <bb 2> [local count: 230763]:
  1864. # DEBUG BEGIN_STMT
  1865. # DEBUG pxTimer => xTimer_1(D)
  1866. # DEBUG BEGIN_STMT
  1867. # DEBUG BEGIN_STMT
  1868. if (xTimer_1(D) == 0B)
  1869. goto <bb 3>; [46.53%]
  1870. else
  1871. goto <bb 5>; [53.47%]
  1872. <bb 3> [local count: 107374]:
  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_6 : "i" 16 : "memory");
  1882. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  1883. <bb 4> [local count: 1073741824]:
  1884. # DEBUG ulNewBASEPRI => NULL
  1885. # DEBUG BEGIN_STMT
  1886. # DEBUG BEGIN_STMT
  1887. # DEBUG BEGIN_STMT
  1888. <bb 6> [local count: 1073741824]:
  1889. goto <bb 4>; [100.00%]
  1890. <bb 5> [local count: 123389]:
  1891. # DEBUG BEGIN_STMT
  1892. # DEBUG BEGIN_STMT
  1893. vPortEnterCritical ();
  1894. # DEBUG BEGIN_STMT
  1895. pvReturn_4 = MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID;
  1896. # DEBUG pvReturn => pvReturn_4
  1897. # DEBUG BEGIN_STMT
  1898. vPortExitCritical ();
  1899. # DEBUG BEGIN_STMT
  1900. return pvReturn_4;
  1901. }
  1902. ;; Function vTimerSetTimerID (vTimerSetTimerID, funcdef_no=26, decl_uid=6350, cgraph_uid=27, symbol_order=32)
  1903. Modification phase of node vTimerSetTimerID/32
  1904. vTimerSetTimerID (struct tmrTimerControl * xTimer, void * pvNewID)
  1905. {
  1906. uint32_t ulNewBASEPRI;
  1907. <bb 2> [local count: 230763]:
  1908. # DEBUG BEGIN_STMT
  1909. # DEBUG pxTimer => xTimer_1(D)
  1910. # DEBUG BEGIN_STMT
  1911. if (xTimer_1(D) == 0B)
  1912. goto <bb 3>; [46.53%]
  1913. else
  1914. goto <bb 5>; [53.47%]
  1915. <bb 3> [local count: 107374]:
  1916. # DEBUG BEGIN_STMT
  1917. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1918. # DEBUG BEGIN_STMT
  1919. # DEBUG BEGIN_STMT
  1920. __asm__ __volatile__(" mov %0, %1
  1921. msr basepri, %0
  1922. isb
  1923. dsb
  1924. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1925. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1926. <bb 4> [local count: 1073741824]:
  1927. # DEBUG ulNewBASEPRI => NULL
  1928. # DEBUG BEGIN_STMT
  1929. # DEBUG BEGIN_STMT
  1930. # DEBUG BEGIN_STMT
  1931. <bb 6> [local count: 1073741824]:
  1932. goto <bb 4>; [100.00%]
  1933. <bb 5> [local count: 123389]:
  1934. # DEBUG BEGIN_STMT
  1935. # DEBUG BEGIN_STMT
  1936. vPortEnterCritical ();
  1937. # DEBUG BEGIN_STMT
  1938. MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID = pvNewID_4(D);
  1939. # DEBUG BEGIN_STMT
  1940. vPortExitCritical ();
  1941. return;
  1942. }
  1943. ;; Function xTimerPendFunctionCallFromISR (xTimerPendFunctionCallFromISR, funcdef_no=27, decl_uid=6359, cgraph_uid=28, symbol_order=33)
  1944. Modification phase of node xTimerPendFunctionCallFromISR/33
  1945. xTimerPendFunctionCallFromISR (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, BaseType_t * pxHigherPriorityTaskWoken)
  1946. {
  1947. BaseType_t xReturn;
  1948. struct DaemonTaskMessage_t xMessage;
  1949. struct QueueDefinition * xTimerQueue.25_1;
  1950. <bb 2> [local count: 1073741824]:
  1951. # DEBUG BEGIN_STMT
  1952. # DEBUG BEGIN_STMT
  1953. # DEBUG BEGIN_STMT
  1954. xMessage.xMessageID = -2;
  1955. # DEBUG BEGIN_STMT
  1956. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  1957. # DEBUG BEGIN_STMT
  1958. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  1959. # DEBUG BEGIN_STMT
  1960. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  1961. # DEBUG BEGIN_STMT
  1962. xTimerQueue.25_1 = xTimerQueue;
  1963. xReturn_12 = xQueueGenericSendFromISR (xTimerQueue.25_1, &xMessage, pxHigherPriorityTaskWoken_10(D), 0);
  1964. # DEBUG xReturn => xReturn_12
  1965. # DEBUG BEGIN_STMT
  1966. # DEBUG BEGIN_STMT
  1967. xMessage ={v} {CLOBBER};
  1968. return xReturn_12;
  1969. }
  1970. ;; Function xTimerPendFunctionCall (xTimerPendFunctionCall, funcdef_no=28, decl_uid=6364, cgraph_uid=29, symbol_order=34)
  1971. Modification phase of node xTimerPendFunctionCall/34
  1972. xTimerPendFunctionCall (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait)
  1973. {
  1974. uint32_t ulNewBASEPRI;
  1975. BaseType_t xReturn;
  1976. struct DaemonTaskMessage_t xMessage;
  1977. struct QueueDefinition * xTimerQueue.26_1;
  1978. <bb 2> [local count: 230763]:
  1979. # DEBUG BEGIN_STMT
  1980. # DEBUG BEGIN_STMT
  1981. # DEBUG BEGIN_STMT
  1982. xTimerQueue.26_1 = xTimerQueue;
  1983. if (xTimerQueue.26_1 == 0B)
  1984. goto <bb 3>; [46.53%]
  1985. else
  1986. goto <bb 5>; [53.47%]
  1987. <bb 3> [local count: 107374]:
  1988. # DEBUG BEGIN_STMT
  1989. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1990. # DEBUG BEGIN_STMT
  1991. # DEBUG BEGIN_STMT
  1992. __asm__ __volatile__(" mov %0, %1
  1993. msr basepri, %0
  1994. isb
  1995. dsb
  1996. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  1997. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  1998. <bb 4> [local count: 1073741824]:
  1999. # DEBUG ulNewBASEPRI => NULL
  2000. # DEBUG BEGIN_STMT
  2001. # DEBUG BEGIN_STMT
  2002. # DEBUG BEGIN_STMT
  2003. <bb 6> [local count: 1073741824]:
  2004. goto <bb 4>; [100.00%]
  2005. <bb 5> [local count: 123389]:
  2006. # DEBUG BEGIN_STMT
  2007. # DEBUG BEGIN_STMT
  2008. xMessage.xMessageID = -1;
  2009. # DEBUG BEGIN_STMT
  2010. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  2011. # DEBUG BEGIN_STMT
  2012. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  2013. # DEBUG BEGIN_STMT
  2014. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  2015. # DEBUG BEGIN_STMT
  2016. xReturn_12 = xQueueGenericSend (xTimerQueue.26_1, &xMessage, xTicksToWait_10(D), 0);
  2017. # DEBUG xReturn => xReturn_12
  2018. # DEBUG BEGIN_STMT
  2019. # DEBUG BEGIN_STMT
  2020. xMessage ={v} {CLOBBER};
  2021. return xReturn_12;
  2022. }
  2023. ;; Function uxTimerGetTimerNumber (uxTimerGetTimerNumber, funcdef_no=29, decl_uid=6388, cgraph_uid=30, symbol_order=35)
  2024. Modification phase of node uxTimerGetTimerNumber/35
  2025. uxTimerGetTimerNumber (struct tmrTimerControl * xTimer)
  2026. {
  2027. UBaseType_t _3;
  2028. <bb 2> [local count: 1073741824]:
  2029. # DEBUG BEGIN_STMT
  2030. _3 = MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber;
  2031. return _3;
  2032. }
  2033. ;; Function vTimerSetTimerNumber (vTimerSetTimerNumber, funcdef_no=30, decl_uid=6386, cgraph_uid=31, symbol_order=36)
  2034. Modification phase of node vTimerSetTimerNumber/36
  2035. vTimerSetTimerNumber (struct tmrTimerControl * xTimer, UBaseType_t uxTimerNumber)
  2036. {
  2037. <bb 2> [local count: 1073741824]:
  2038. # DEBUG BEGIN_STMT
  2039. MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D);
  2040. return;
  2041. }