timers.c.079i.static-var 80 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547
  1. callgraph:
  2. prvSampleTimeNow/73 (prvSampleTimeNow) @05e5b0e0
  3. Type: function definition analyzed
  4. Visibility:
  5. next sharing asm name: 25
  6. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  7. Referring:
  8. Function prvSampleTimeNow/73 is inline copy in prvTimerTask/22
  9. Clone of prvSampleTimeNow/25
  10. Availability: local
  11. Function flags: count:1073741824 (estimated locally) body local optimize_size
  12. Called by: prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call)
  13. Calls: xTaskGetTickCount/41 (1073741824 (estimated locally),10000.02 per call) prvSwitchTimerLists/28 (354334802 (estimated locally),3300.01 per call)
  14. prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05e55d20
  15. Type: function definition analyzed
  16. Visibility:
  17. References:
  18. Referring:
  19. Function prvInitialiseNewTimer.constprop/72 is inline copy in xTimerCreate/11
  20. Clone of prvInitialiseNewTimer/12
  21. Availability: local
  22. Function flags: count:574129754 (estimated locally) local optimize_size
  23. Called by: xTimerCreate/11 (inlined) (574129754 (estimated locally),0.53 per call)
  24. Calls: prvCheckForValidListAndQueue/29 (189463535 (estimated locally),0.18 per call) vListInitialiseItem/53 (189463535 (estimated locally),0.18 per call)
  25. prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05e55a80
  26. Type: function definition analyzed
  27. Visibility: prevailing_def_ironly artificial
  28. References: pxOverflowTimerList/7 (read)
  29. Referring:
  30. Function prvInsertTimerInActiveList.part.0/57 is inline copy in prvInsertTimerInActiveList/26
  31. Availability: local
  32. Function flags: count:177167400 (estimated locally) first_run:1 body local split_part optimize_size
  33. Called by: prvInsertTimerInActiveList/26 (inlined) (177167400 (estimated locally),0.16 per call)
  34. Calls: vListInsert/44 (177167400 (estimated locally),0.16 per call)
  35. xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f5cc40
  36. Type: function
  37. Visibility: external public
  38. References:
  39. Referring:
  40. Availability: not_available
  41. Function flags: optimize_size
  42. Called by: xTimerPendFunctionCallFromISR/33 (1073741824 (estimated locally),1.00 per call) xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  43. Calls:
  44. xQueueGenericSend/55 (xQueueGenericSend) @05f5cb60
  45. Type: function
  46. Visibility: external public
  47. References:
  48. Referring:
  49. Availability: not_available
  50. Function flags: optimize_size
  51. 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)
  52. Calls:
  53. xTaskGetSchedulerState/54 (xTaskGetSchedulerState) @05f5ca80
  54. Type: function
  55. Visibility: external public
  56. References:
  57. Referring:
  58. Availability: not_available
  59. Function flags: optimize_size
  60. Called by: xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  61. Calls:
  62. vListInitialiseItem/53 (vListInitialiseItem) @05f5c8c0
  63. Type: function
  64. Visibility: external public
  65. References:
  66. Referring:
  67. Availability: not_available
  68. Function flags: optimize_size
  69. Called by: prvInitialiseNewTimer.constprop/72 (189463535 (estimated locally),0.18 per call)
  70. Calls:
  71. pvPortMalloc/52 (pvPortMalloc) @05f5c700
  72. Type: function
  73. Visibility: external public
  74. References:
  75. Referring:
  76. Availability: not_available
  77. Function flags: optimize_size
  78. Called by: xTimerCreate/11 (1073741824 (estimated locally),1.00 per call)
  79. Calls:
  80. vPortExitCritical/51 (vPortExitCritical) @05f5c460
  81. Type: function
  82. Visibility: external public
  83. References:
  84. Referring:
  85. Availability: not_available
  86. Function flags: optimize_size
  87. 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)
  88. Calls:
  89. vQueueAddToRegistry/50 (vQueueAddToRegistry) @05f5c380
  90. Type: function
  91. Visibility: external public
  92. References:
  93. Referring:
  94. Availability: not_available
  95. Function flags: optimize_size
  96. Called by: prvCheckForValidListAndQueue/29 (100070816 (estimated locally),0.09 per call)
  97. Calls:
  98. xQueueGenericCreate/49 (xQueueGenericCreate) @05f5c2a0
  99. Type: function
  100. Visibility: external public
  101. References:
  102. Referring:
  103. Availability: not_available
  104. Function flags: optimize_size
  105. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  106. Calls:
  107. vListInitialise/48 (vListInitialise) @05f5c0e0
  108. Type: function
  109. Visibility: external public
  110. References:
  111. Referring:
  112. Availability: not_available
  113. Function flags: optimize_size
  114. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  115. Calls:
  116. vPortEnterCritical/47 (vPortEnterCritical) @05f5c000
  117. Type: function
  118. Visibility: external public
  119. References:
  120. Referring:
  121. Availability: not_available
  122. Function flags: optimize_size
  123. 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)
  124. Calls:
  125. xQueueReceive/46 (xQueueReceive) @05f36e00
  126. Type: function
  127. Visibility: external public
  128. References:
  129. Referring:
  130. Availability: not_available
  131. Function flags: optimize_size
  132. Called by: prvProcessReceivedCommands/27 (19321729474 (estimated locally),179947.93 per call)
  133. Calls:
  134. vPortFree/45 (vPortFree) @05f36d20
  135. Type: function
  136. Visibility: external public
  137. References:
  138. Referring:
  139. Availability: not_available
  140. Function flags: optimize_size
  141. Called by: prvProcessReceivedCommands/27 (66280295 (estimated locally),617.28 per call)
  142. Calls:
  143. vListInsert/44 (vListInsert) @05f369a0
  144. Type: function
  145. Visibility: external public
  146. References:
  147. Referring:
  148. Availability: not_available
  149. Function flags: optimize_size
  150. Called by: prvInsertTimerInActiveList/26 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (177167400 (estimated locally),0.16 per call)
  151. Calls:
  152. uxListRemove/43 (uxListRemove) @05f36700
  153. Type: function
  154. Visibility: external public
  155. References:
  156. Referring:
  157. Availability: not_available
  158. Function flags: optimize_size
  159. Called by: prvProcessReceivedCommands/27 (536970861 (estimated locally),5000.94 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call)
  160. Calls:
  161. xTaskGetTickCount/41 (xTaskGetTickCount) @05f36380
  162. Type: function
  163. Visibility: external public
  164. References:
  165. Referring:
  166. Availability: not_available
  167. Function flags: optimize_size
  168. Called by: prvSampleTimeNow/73 (1073741824 (estimated locally),10000.02 per call) prvSampleTimeNow/25 (1004246918 (estimated locally),9352.79 per call)
  169. Calls:
  170. vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05f361c0
  171. Type: function
  172. Visibility: external public
  173. References:
  174. Referring:
  175. Availability: not_available
  176. Function flags: optimize_size
  177. Called by: prvProcessTimerOrBlockTask/23 (600704865 (estimated locally),5594.51 per call)
  178. Calls:
  179. xTaskResumeAll/39 (xTaskResumeAll) @05f360e0
  180. Type: function
  181. Visibility: external public
  182. References:
  183. Referring:
  184. Availability: not_available
  185. Function flags: optimize_size
  186. Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),3300.01 per call) prvProcessTimerOrBlockTask/23 (600704865 (estimated locally),5594.51 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),1105.50 per call)
  187. Calls:
  188. vTaskSuspendAll/38 (vTaskSuspendAll) @05f36000
  189. Type: function
  190. Visibility: external public
  191. References:
  192. Referring:
  193. Availability: not_available
  194. Function flags: optimize_size
  195. Called by: prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call)
  196. Calls:
  197. xTaskCreate/37 (xTaskCreate) @05f2aee0
  198. Type: function
  199. Visibility: external public
  200. References:
  201. Referring:
  202. Availability: not_available
  203. Function flags: optimize_size
  204. Called by: xTimerCreateTimerTask/10 (78363 (estimated locally),0.53 per call)
  205. Calls:
  206. vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05f2aa80
  207. Type: function definition analyzed
  208. Visibility: externally_visible public
  209. References:
  210. Referring:
  211. Availability: available
  212. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  213. Called by:
  214. Calls:
  215. uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05f2a7e0
  216. Type: function definition analyzed
  217. Visibility: externally_visible public
  218. References:
  219. Referring:
  220. Availability: available
  221. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  222. Called by:
  223. Calls:
  224. xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05f2a540
  225. Type: function definition analyzed
  226. Visibility: externally_visible public
  227. References: xTimerQueue/8 (read)
  228. Referring:
  229. Availability: available
  230. Function flags: count:230763 (estimated locally) body optimize_size
  231. Called by:
  232. Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call)
  233. xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05f2a0e0
  234. Type: function definition analyzed
  235. Visibility: externally_visible public
  236. References: xTimerQueue/8 (read)
  237. Referring:
  238. Availability: available
  239. Function flags: count:1073741824 (estimated locally) body optimize_size
  240. Called by:
  241. Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call)
  242. vTimerSetTimerID/32 (vTimerSetTimerID) @05f268c0
  243. Type: function definition analyzed
  244. Visibility: externally_visible public
  245. References:
  246. Referring:
  247. Availability: available
  248. Function flags: count:230763 (estimated locally) body optimize_size
  249. Called by:
  250. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  251. pvTimerGetTimerID/31 (pvTimerGetTimerID) @05f26ee0
  252. Type: function definition analyzed
  253. Visibility: externally_visible public
  254. References:
  255. Referring:
  256. Availability: available
  257. Function flags: count:230763 (estimated locally) body optimize_size
  258. Called by:
  259. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  260. xTimerIsTimerActive/30 (xTimerIsTimerActive) @05f26b60
  261. Type: function definition analyzed
  262. Visibility: externally_visible public
  263. References:
  264. Referring:
  265. Availability: available
  266. Function flags: count:230763 (estimated locally) body optimize_size
  267. Called by:
  268. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  269. prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05f267e0
  270. Type: function definition analyzed
  271. Visibility: prevailing_def_ironly
  272. 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)
  273. Referring:
  274. Availability: local
  275. Function flags: count:1073741824 (estimated locally) body local optimize_size
  276. Called by: prvInitialiseNewTimer.constprop/72 (189463535 (estimated locally),0.18 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call)
  277. 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)
  278. prvSwitchTimerLists/28 (prvSwitchTimerLists) @05f26460
  279. Type: function definition analyzed
  280. Visibility: prevailing_def_ironly
  281. References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write)
  282. Referring:
  283. Availability: local
  284. Function flags: count:118111600 (estimated locally) body local optimize_size
  285. Called by: prvSampleTimeNow/73 (354334802 (estimated locally),3300.01 per call) prvSampleTimeNow/25 (331401483 (estimated locally),3086.42 per call)
  286. Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call)
  287. prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05f260e0
  288. Type: function definition analyzed
  289. Visibility: prevailing_def_ironly
  290. References: xTimerQueue/8 (read)
  291. Referring:
  292. Function prvProcessReceivedCommands/27 is inline copy in prvTimerTask/22
  293. Availability: local
  294. Function flags: count:1073741824 (estimated locally) body local optimize_size
  295. Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call)
  296. Calls: xQueueReceive/46 (19321729474 (estimated locally),179947.93 per call) vPortFree/45 (66280295 (estimated locally),617.28 per call) prvInsertTimerInActiveList/26 (189802709 (estimated locally),1767.68 per call) prvReloadTimer/20 (33140147 (estimated locally),308.64 per call) prvInsertTimerInActiveList/26 (200849425 (estimated locally),1870.56 per call) prvSampleTimeNow/25 (inlined) (1004246918 (estimated locally),9352.79 per call) uxListRemove/43 (536970861 (estimated locally),5000.94 per call)
  297. Indirect call(100424661 (estimated locally),935.28 per call)
  298. Indirect call(7486204063 (estimated locally),69720.83 per call)
  299. prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05f1a7e0
  300. Type: function definition analyzed
  301. Visibility: prevailing_def_ironly
  302. References: pxCurrentTimerList/6 (read)
  303. Referring:
  304. Availability: local
  305. Function flags: count:1073741824 (estimated locally) body local optimize_size
  306. Called by: prvProcessReceivedCommands/27 (189802709 (estimated locally),1767.68 per call) prvProcessReceivedCommands/27 (200849425 (estimated locally),1870.56 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call)
  307. Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (inlined) (177167400 (estimated locally),0.16 per call)
  308. prvSampleTimeNow/25 (prvSampleTimeNow) @05f1ad20
  309. Type: function definition analyzed
  310. Visibility: prevailing_def_ironly
  311. previous sharing asm name: 73
  312. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  313. Referring:
  314. Function prvSampleTimeNow/25 is inline copy in prvTimerTask/22
  315. Availability: local
  316. Function flags: count:1004246918 (estimated locally) body local optimize_size
  317. Called by: prvProcessReceivedCommands/27 (inlined) (1004246918 (estimated locally),9352.79 per call)
  318. Calls: prvSwitchTimerLists/28 (331401483 (estimated locally),3086.42 per call) xTaskGetTickCount/41 (1004246918 (estimated locally),9352.79 per call)
  319. prvGetNextExpireTime/24 (prvGetNextExpireTime) @05f1aa80
  320. Type: function definition analyzed
  321. Visibility: prevailing_def_ironly
  322. References: pxCurrentTimerList/6 (read)
  323. Referring:
  324. Function prvGetNextExpireTime/24 is inline copy in prvTimerTask/22
  325. Availability: local
  326. Function flags: count:1073741824 (estimated locally) body local nonfreeing_fn optimize_size
  327. Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call)
  328. Calls:
  329. prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05f1a700
  330. Type: function definition analyzed
  331. Visibility: prevailing_def_ironly
  332. References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read)
  333. Referring:
  334. Function prvProcessTimerOrBlockTask/23 is inline copy in prvTimerTask/22
  335. Availability: local
  336. Function flags: count:1073741824 (estimated locally) body local optimize_size
  337. Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call)
  338. Calls: xTaskResumeAll/39 (354334802 (estimated locally),3300.01 per call) xTaskResumeAll/39 (600704865 (estimated locally),5594.51 per call) vQueueWaitForMessageRestricted/40 (600704865 (estimated locally),5594.51 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),1105.50 per call) xTaskResumeAll/39 (118702158 (estimated locally),1105.50 per call) prvSampleTimeNow/73 (inlined) (1073741824 (estimated locally),10000.02 per call) vTaskSuspendAll/38 (1073741824 (estimated locally),10000.02 per call)
  339. prvTimerTask/22 (prvTimerTask) @05f1a2a0
  340. Type: function definition analyzed
  341. Visibility: prevailing_def_ironly
  342. Address is taken.
  343. References:
  344. Referring: xTimerCreateTimerTask/10 (addr)
  345. Availability: available
  346. Function flags: count:107374 (estimated locally) body executed_once optimize_size
  347. Called by:
  348. Calls: prvProcessReceivedCommands/27 (inlined) (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (inlined) (1073741824 (estimated locally),10000.02 per call)
  349. prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05f1a000
  350. Type: function definition analyzed
  351. Visibility: prevailing_def_ironly
  352. References: pxCurrentTimerList/6 (read)
  353. Referring:
  354. Availability: local
  355. Function flags: count:1073741824 (estimated locally) body local optimize_size
  356. Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),1105.50 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call)
  357. Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call)
  358. Indirect call(1073741824 (estimated locally),1.00 per call)
  359. prvReloadTimer/20 (prvReloadTimer) @05ec0540
  360. Type: function definition analyzed
  361. Visibility: prevailing_def_ironly
  362. References:
  363. Referring:
  364. Availability: local
  365. Function flags: count:118111600 (estimated locally) body local optimize_size
  366. Called by: prvProcessReceivedCommands/27 (33140147 (estimated locally),308.64 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call)
  367. Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call)
  368. Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed)
  369. pcTimerGetName/19 (pcTimerGetName) @05ec0ee0
  370. Type: function definition analyzed
  371. Visibility: externally_visible public
  372. References:
  373. Referring:
  374. Availability: available
  375. Function flags: count:357913 (estimated locally) body optimize_size
  376. Called by:
  377. Calls:
  378. xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05ec0b60
  379. Type: function definition analyzed
  380. Visibility: externally_visible public
  381. References:
  382. Referring:
  383. Availability: available
  384. Function flags: count:357913 (estimated locally) body optimize_size
  385. Called by:
  386. Calls:
  387. uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05ec07e0
  388. Type: function definition analyzed
  389. Visibility: externally_visible public
  390. References:
  391. Referring:
  392. Availability: available
  393. Function flags: count:230763 (estimated locally) body optimize_size
  394. Called by:
  395. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  396. vTimerSetReloadMode/16 (vTimerSetReloadMode) @05ec0460
  397. Type: function definition analyzed
  398. Visibility: externally_visible public
  399. References:
  400. Referring:
  401. Availability: available
  402. Function flags: count:230763 (estimated locally) body optimize_size
  403. Called by:
  404. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  405. xTimerGetPeriod/15 (xTimerGetPeriod) @05ec00e0
  406. Type: function definition analyzed
  407. Visibility: externally_visible public
  408. References:
  409. Referring:
  410. Availability: available
  411. Function flags: count:357913 (estimated locally) body optimize_size
  412. Called by:
  413. Calls:
  414. xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05f157e0
  415. Type: function definition analyzed
  416. Visibility: externally_visible public
  417. References: xTimerTaskHandle/9 (read)
  418. Referring:
  419. Availability: available
  420. Function flags: count:357913 (estimated locally) body optimize_size
  421. Called by:
  422. Calls:
  423. xTimerGenericCommand/13 (xTimerGenericCommand) @05f151c0
  424. Type: function definition analyzed
  425. Visibility: externally_visible public
  426. References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read)
  427. Referring:
  428. Availability: available
  429. Function flags: count:357913 (estimated locally) body optimize_size
  430. Called by:
  431. 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)
  432. prvInitialiseNewTimer/12 (prvInitialiseNewTimer) @05f15a80
  433. Type: function
  434. Body removed by symtab_remove_unreachable_nodes
  435. Visibility: prevailing_def_ironly
  436. References:
  437. Referring:
  438. Availability: not_available
  439. Function flags: count:160260 (estimated locally) body optimize_size
  440. Called by:
  441. Calls:
  442. xTimerCreate/11 (xTimerCreate) @05f15700
  443. Type: function definition analyzed
  444. Visibility: externally_visible public
  445. References:
  446. Referring:
  447. Availability: available
  448. Function flags: count:1073741824 (estimated locally) body optimize_size
  449. Called by:
  450. Calls: prvInitialiseNewTimer.constprop/72 (inlined) (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call)
  451. xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05f15460
  452. Type: function definition analyzed
  453. Visibility: externally_visible public
  454. References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr)
  455. Referring:
  456. Availability: available
  457. Function flags: count:146556 (estimated locally) body optimize_size
  458. Called by:
  459. Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call)
  460. Clearing variable flags:
  461. Promotable global:pxCurrentTimerList (uid=6416)
  462. Promotable global:pxOverflowTimerList (uid=6417)
  463. Promotable global:xTimerQueue (uid=6418)
  464. Promotable global:xLastTime (uid=6551)
  465. Function name:prvSampleTimeNow/73:
  466. locals read: xLastTime
  467. locals written: xLastTime
  468. Function name:prvInitialiseNewTimer.constprop/72:
  469. locals read:
  470. locals written:
  471. Function name:prvInsertTimerInActiveList.part.0/57:
  472. locals read: pxOverflowTimerList
  473. locals written:
  474. Function name:vTimerSetTimerNumber/36:
  475. locals read:
  476. locals written:
  477. Function name:uxTimerGetTimerNumber/35:
  478. locals read:
  479. locals written:
  480. Function name:xTimerPendFunctionCall/34:
  481. locals read: xTimerQueue
  482. locals written:
  483. Function name:xTimerPendFunctionCallFromISR/33:
  484. locals read: xTimerQueue
  485. locals written:
  486. Function name:vTimerSetTimerID/32:
  487. locals read:
  488. locals written:
  489. Function name:pvTimerGetTimerID/31:
  490. locals read:
  491. locals written:
  492. Function name:xTimerIsTimerActive/30:
  493. locals read:
  494. locals written:
  495. Function name:prvCheckForValidListAndQueue/29:
  496. locals read: xTimerQueue
  497. locals written: pxCurrentTimerList pxOverflowTimerList xTimerQueue
  498. Function name:prvSwitchTimerLists/28:
  499. locals read: pxCurrentTimerList pxOverflowTimerList
  500. locals written: pxCurrentTimerList pxOverflowTimerList
  501. Function name:prvProcessReceivedCommands/27:
  502. locals read: xTimerQueue
  503. locals written:
  504. Function name:prvInsertTimerInActiveList/26:
  505. locals read: pxCurrentTimerList
  506. locals written:
  507. Function name:prvSampleTimeNow/25:
  508. locals read: xLastTime
  509. locals written: xLastTime
  510. Function name:prvGetNextExpireTime/24:
  511. locals read: pxCurrentTimerList
  512. locals written:
  513. Function name:prvProcessTimerOrBlockTask/23:
  514. locals read: pxOverflowTimerList xTimerQueue
  515. locals written:
  516. Function name:prvTimerTask/22:
  517. locals read:
  518. locals written:
  519. Function name:prvProcessExpiredTimer/21:
  520. locals read: pxCurrentTimerList
  521. locals written:
  522. Function name:prvReloadTimer/20:
  523. locals read:
  524. locals written:
  525. Function name:pcTimerGetName/19:
  526. locals read:
  527. locals written:
  528. Function name:xTimerGetExpiryTime/18:
  529. locals read:
  530. locals written:
  531. Function name:uxTimerGetReloadMode/17:
  532. locals read:
  533. locals written:
  534. Function name:vTimerSetReloadMode/16:
  535. locals read:
  536. locals written:
  537. Function name:xTimerGetPeriod/15:
  538. locals read:
  539. locals written:
  540. Function name:xTimerGetTimerDaemonTaskHandle/14:
  541. locals read:
  542. locals written:
  543. Function name:xTimerGenericCommand/13:
  544. locals read: xTimerQueue
  545. locals written:
  546. Function name:xTimerCreate/11:
  547. locals read:
  548. locals written:
  549. Function name:xTimerCreateTimerTask/10:
  550. locals read: xTimerQueue
  551. locals written:
  552. ordered call graph: reduced
  553. vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05f2aa80
  554. Type: function definition analyzed
  555. Visibility: externally_visible public
  556. Aux: @05d18c48
  557. References:
  558. Referring:
  559. Availability: available
  560. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  561. Called by:
  562. Calls:
  563. uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05f2a7e0
  564. Type: function definition analyzed
  565. Visibility: externally_visible public
  566. Aux: @05d18a28
  567. References:
  568. Referring:
  569. Availability: available
  570. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  571. Called by:
  572. Calls:
  573. xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05f2a540
  574. Type: function definition analyzed
  575. Visibility: externally_visible public
  576. Aux: @05d18b08
  577. References: xTimerQueue/8 (read)
  578. Referring:
  579. Availability: available
  580. Function flags: count:230763 (estimated locally) body optimize_size
  581. Called by:
  582. Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call)
  583. xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05f2a0e0
  584. Type: function definition analyzed
  585. Visibility: externally_visible public
  586. Aux: @05d18b88
  587. References: xTimerQueue/8 (read)
  588. Referring:
  589. Availability: available
  590. Function flags: count:1073741824 (estimated locally) body optimize_size
  591. Called by:
  592. Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call)
  593. vTimerSetTimerID/32 (vTimerSetTimerID) @05f268c0
  594. Type: function definition analyzed
  595. Visibility: externally_visible public
  596. Aux: @05d18c28
  597. References:
  598. Referring:
  599. Availability: available
  600. Function flags: count:230763 (estimated locally) body optimize_size
  601. Called by:
  602. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  603. pvTimerGetTimerID/31 (pvTimerGetTimerID) @05f26ee0
  604. Type: function definition analyzed
  605. Visibility: externally_visible public
  606. Aux: @05d18ba8
  607. References:
  608. Referring:
  609. Availability: available
  610. Function flags: count:230763 (estimated locally) body optimize_size
  611. Called by:
  612. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  613. xTimerIsTimerActive/30 (xTimerIsTimerActive) @05f26b60
  614. Type: function definition analyzed
  615. Visibility: externally_visible public
  616. Aux: @05d18c68
  617. References:
  618. Referring:
  619. Availability: available
  620. Function flags: count:230763 (estimated locally) body optimize_size
  621. Called by:
  622. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  623. prvTimerTask/22 (prvTimerTask) @05f1a2a0
  624. Type: function definition analyzed
  625. Visibility: prevailing_def_ironly
  626. Address is taken.
  627. Aux: @05d18b28
  628. References:
  629. Referring: xTimerCreateTimerTask/10 (addr)
  630. Availability: available
  631. Function flags: count:107374 (estimated locally) body executed_once optimize_size
  632. Called by:
  633. Calls: prvProcessReceivedCommands/27 (inlined) (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (inlined) (1073741824 (estimated locally),10000.02 per call)
  634. prvGetNextExpireTime/24 (prvGetNextExpireTime) @05f1aa80
  635. Type: function definition analyzed
  636. Visibility: prevailing_def_ironly
  637. Aux: @05d18a48
  638. References: pxCurrentTimerList/6 (read)
  639. Referring:
  640. Function prvGetNextExpireTime/24 is inline copy in prvTimerTask/22
  641. Availability: local
  642. Function flags: count:1073741824 (estimated locally) body local nonfreeing_fn optimize_size
  643. Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call)
  644. Calls:
  645. prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05f1a700
  646. Type: function definition analyzed
  647. Visibility: prevailing_def_ironly
  648. Aux: @05d18b48
  649. References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read)
  650. Referring:
  651. Function prvProcessTimerOrBlockTask/23 is inline copy in prvTimerTask/22
  652. Availability: local
  653. Function flags: count:1073741824 (estimated locally) body local optimize_size
  654. Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call)
  655. Calls: xTaskResumeAll/39 (354334802 (estimated locally),3300.01 per call) xTaskResumeAll/39 (600704865 (estimated locally),5594.51 per call) vQueueWaitForMessageRestricted/40 (600704865 (estimated locally),5594.51 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),1105.50 per call) xTaskResumeAll/39 (118702158 (estimated locally),1105.50 per call) prvSampleTimeNow/73 (inlined) (1073741824 (estimated locally),10000.02 per call) vTaskSuspendAll/38 (1073741824 (estimated locally),10000.02 per call)
  656. prvSampleTimeNow/73 (prvSampleTimeNow) @05e5b0e0
  657. Type: function definition analyzed
  658. Visibility:
  659. next sharing asm name: 25
  660. Aux: @05d18dc8
  661. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  662. Referring:
  663. Function prvSampleTimeNow/73 is inline copy in prvTimerTask/22
  664. Clone of prvSampleTimeNow/25
  665. Availability: local
  666. Function flags: count:1073741824 (estimated locally) body local optimize_size
  667. Called by: prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call)
  668. Calls: xTaskGetTickCount/41 (1073741824 (estimated locally),10000.02 per call) prvSwitchTimerLists/28 (354334802 (estimated locally),3300.01 per call)
  669. prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05f260e0
  670. Type: function definition analyzed
  671. Visibility: prevailing_def_ironly
  672. Aux: @05d18ae8
  673. References: xTimerQueue/8 (read)
  674. Referring:
  675. Function prvProcessReceivedCommands/27 is inline copy in prvTimerTask/22
  676. Availability: local
  677. Function flags: count:1073741824 (estimated locally) body local optimize_size
  678. Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call)
  679. Calls: xQueueReceive/46 (19321729474 (estimated locally),179947.93 per call) vPortFree/45 (66280295 (estimated locally),617.28 per call) prvInsertTimerInActiveList/26 (189802709 (estimated locally),1767.68 per call) prvReloadTimer/20 (33140147 (estimated locally),308.64 per call) prvInsertTimerInActiveList/26 (200849425 (estimated locally),1870.56 per call) prvSampleTimeNow/25 (inlined) (1004246918 (estimated locally),9352.79 per call) uxListRemove/43 (536970861 (estimated locally),5000.94 per call)
  680. Indirect call(100424661 (estimated locally),935.28 per call)
  681. Indirect call(7486204063 (estimated locally),69720.83 per call)
  682. prvSampleTimeNow/25 (prvSampleTimeNow) @05f1ad20
  683. Type: function definition analyzed
  684. Visibility: prevailing_def_ironly
  685. previous sharing asm name: 73
  686. Aux: @05d18be8
  687. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  688. Referring:
  689. Function prvSampleTimeNow/25 is inline copy in prvTimerTask/22
  690. Availability: local
  691. Function flags: count:1004246918 (estimated locally) body local optimize_size
  692. Called by: prvProcessReceivedCommands/27 (inlined) (1004246918 (estimated locally),9352.79 per call)
  693. Calls: prvSwitchTimerLists/28 (331401483 (estimated locally),3086.42 per call) xTaskGetTickCount/41 (1004246918 (estimated locally),9352.79 per call)
  694. prvSwitchTimerLists/28 (prvSwitchTimerLists) @05f26460
  695. Type: function definition analyzed
  696. Visibility: prevailing_def_ironly
  697. Aux: @05d18da8
  698. References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write)
  699. Referring:
  700. Availability: local
  701. Function flags: count:118111600 (estimated locally) body local optimize_size
  702. Called by: prvSampleTimeNow/73 (354334802 (estimated locally),3300.01 per call) prvSampleTimeNow/25 (331401483 (estimated locally),3086.42 per call)
  703. Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call)
  704. prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05f1a000
  705. Type: function definition analyzed
  706. Visibility: prevailing_def_ironly
  707. Aux: @05d18b68
  708. References: pxCurrentTimerList/6 (read)
  709. Referring:
  710. Availability: local
  711. Function flags: count:1073741824 (estimated locally) body local optimize_size
  712. Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),1105.50 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call)
  713. Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call)
  714. Indirect call(1073741824 (estimated locally),1.00 per call)
  715. prvReloadTimer/20 (prvReloadTimer) @05ec0540
  716. Type: function definition analyzed
  717. Visibility: prevailing_def_ironly
  718. Aux: @05d18d08
  719. References:
  720. Referring:
  721. Availability: local
  722. Function flags: count:118111600 (estimated locally) body local optimize_size
  723. Called by: prvProcessReceivedCommands/27 (33140147 (estimated locally),308.64 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call)
  724. Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call)
  725. Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed)
  726. prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05f1a7e0
  727. Type: function definition analyzed
  728. Visibility: prevailing_def_ironly
  729. Aux: @05d18aa8
  730. References: pxCurrentTimerList/6 (read)
  731. Referring:
  732. Availability: local
  733. Function flags: count:1073741824 (estimated locally) body local optimize_size
  734. Called by: prvProcessReceivedCommands/27 (189802709 (estimated locally),1767.68 per call) prvProcessReceivedCommands/27 (200849425 (estimated locally),1870.56 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call)
  735. Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (inlined) (177167400 (estimated locally),0.16 per call)
  736. prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05e55a80
  737. Type: function definition analyzed
  738. Visibility: prevailing_def_ironly artificial
  739. Aux: @05d18a08
  740. References: pxOverflowTimerList/7 (read)
  741. Referring:
  742. Function prvInsertTimerInActiveList.part.0/57 is inline copy in prvInsertTimerInActiveList/26
  743. Availability: local
  744. Function flags: count:177167400 (estimated locally) first_run:1 body local split_part optimize_size
  745. Called by: prvInsertTimerInActiveList/26 (inlined) (177167400 (estimated locally),0.16 per call)
  746. Calls: vListInsert/44 (177167400 (estimated locally),0.16 per call)
  747. pcTimerGetName/19 (pcTimerGetName) @05ec0ee0
  748. Type: function definition analyzed
  749. Visibility: externally_visible public
  750. Aux: @05d18bc8
  751. References:
  752. Referring:
  753. Availability: available
  754. Function flags: count:357913 (estimated locally) body optimize_size
  755. Called by:
  756. Calls:
  757. xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05ec0b60
  758. Type: function definition analyzed
  759. Visibility: externally_visible public
  760. Aux: @05d18d28
  761. References:
  762. Referring:
  763. Availability: available
  764. Function flags: count:357913 (estimated locally) body optimize_size
  765. Called by:
  766. Calls:
  767. uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05ec07e0
  768. Type: function definition analyzed
  769. Visibility: externally_visible public
  770. Aux: @05d189e8
  771. References:
  772. Referring:
  773. Availability: available
  774. Function flags: count:230763 (estimated locally) body optimize_size
  775. Called by:
  776. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  777. vTimerSetReloadMode/16 (vTimerSetReloadMode) @05ec0460
  778. Type: function definition analyzed
  779. Visibility: externally_visible public
  780. Aux: @05d18c08
  781. References:
  782. Referring:
  783. Availability: available
  784. Function flags: count:230763 (estimated locally) body optimize_size
  785. Called by:
  786. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  787. xTimerGetPeriod/15 (xTimerGetPeriod) @05ec00e0
  788. Type: function definition analyzed
  789. Visibility: externally_visible public
  790. Aux: @05d18d68
  791. References:
  792. Referring:
  793. Availability: available
  794. Function flags: count:357913 (estimated locally) body optimize_size
  795. Called by:
  796. Calls:
  797. xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05f157e0
  798. Type: function definition analyzed
  799. Visibility: externally_visible public
  800. Aux: @05d18c88
  801. References: xTimerTaskHandle/9 (read)
  802. Referring:
  803. Availability: available
  804. Function flags: count:357913 (estimated locally) body optimize_size
  805. Called by:
  806. Calls:
  807. xTimerGenericCommand/13 (xTimerGenericCommand) @05f151c0
  808. Type: function definition analyzed
  809. Visibility: externally_visible public
  810. Aux: @05d18ca8
  811. References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read)
  812. Referring:
  813. Availability: available
  814. Function flags: count:357913 (estimated locally) body optimize_size
  815. Called by:
  816. 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)
  817. xTimerCreate/11 (xTimerCreate) @05f15700
  818. Type: function definition analyzed
  819. Visibility: externally_visible public
  820. Aux: @05d18cc8
  821. References:
  822. Referring:
  823. Availability: available
  824. Function flags: count:1073741824 (estimated locally) body optimize_size
  825. Called by:
  826. Calls: prvInitialiseNewTimer.constprop/72 (inlined) (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call)
  827. prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05e55d20
  828. Type: function definition analyzed
  829. Visibility:
  830. Aux: @05d18de8
  831. References:
  832. Referring:
  833. Function prvInitialiseNewTimer.constprop/72 is inline copy in xTimerCreate/11
  834. Clone of prvInitialiseNewTimer/12
  835. Availability: local
  836. Function flags: count:574129754 (estimated locally) local optimize_size
  837. Called by: xTimerCreate/11 (inlined) (574129754 (estimated locally),0.53 per call)
  838. Calls: prvCheckForValidListAndQueue/29 (189463535 (estimated locally),0.18 per call) vListInitialiseItem/53 (189463535 (estimated locally),0.18 per call)
  839. xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05f15460
  840. Type: function definition analyzed
  841. Visibility: externally_visible public
  842. Aux: @05d18ac8
  843. References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr)
  844. Referring:
  845. Availability: available
  846. Function flags: count:146556 (estimated locally) body optimize_size
  847. Called by:
  848. Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call)
  849. prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05f267e0
  850. Type: function definition analyzed
  851. Visibility: prevailing_def_ironly
  852. Aux: @05d18ce8
  853. 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)
  854. Referring:
  855. Availability: local
  856. Function flags: count:1073741824 (estimated locally) body local optimize_size
  857. Called by: prvInitialiseNewTimer.constprop/72 (189463535 (estimated locally),0.18 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call)
  858. 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)
  859. Function name:prvCheckForValidListAndQueue/29:
  860. locals read: xTimerQueue
  861. locals written: pxCurrentTimerList pxOverflowTimerList xTimerQueue
  862. globals read: ALL
  863. globals written: ALL
  864. Function name:xTimerCreateTimerTask/10:
  865. locals read: xTimerQueue
  866. locals written:
  867. globals read: ALL
  868. globals written: ALL
  869. Function name:prvInitialiseNewTimer.constprop.0/72:
  870. locals read:
  871. locals written:
  872. globals read: ALL
  873. globals written: ALL
  874. Function name:xTimerCreate/11:
  875. locals read:
  876. locals written:
  877. globals read: ALL
  878. globals written: ALL
  879. Function name:xTimerGenericCommand/13:
  880. locals read: xTimerQueue
  881. locals written:
  882. globals read: ALL
  883. globals written: ALL
  884. Function name:xTimerGetTimerDaemonTaskHandle/14:
  885. locals read:
  886. locals written:
  887. globals read:
  888. globals written:
  889. Function name:xTimerGetPeriod/15:
  890. locals read:
  891. locals written:
  892. globals read:
  893. globals written:
  894. Function name:vTimerSetReloadMode/16:
  895. locals read:
  896. locals written:
  897. globals read: ALL
  898. globals written: ALL
  899. Function name:uxTimerGetReloadMode/17:
  900. locals read:
  901. locals written:
  902. globals read: ALL
  903. globals written: ALL
  904. Function name:xTimerGetExpiryTime/18:
  905. locals read:
  906. locals written:
  907. globals read:
  908. globals written:
  909. Function name:pcTimerGetName/19:
  910. locals read:
  911. locals written:
  912. globals read:
  913. globals written:
  914. Function name:prvInsertTimerInActiveList.part.0/57:
  915. locals read: pxOverflowTimerList
  916. locals written:
  917. globals read: ALL
  918. globals written: ALL
  919. Function name:prvInsertTimerInActiveList/26:
  920. locals read: pxCurrentTimerList
  921. locals written:
  922. globals read: ALL
  923. globals written: ALL
  924. Function name:prvReloadTimer/20:
  925. locals read:
  926. locals written:
  927. globals read: ALL
  928. globals written: ALL
  929. Function name:prvProcessExpiredTimer/21:
  930. locals read: pxCurrentTimerList
  931. locals written:
  932. globals read: ALL
  933. globals written: ALL
  934. Function name:prvSwitchTimerLists/28:
  935. locals read: pxCurrentTimerList pxOverflowTimerList
  936. locals written: pxCurrentTimerList pxOverflowTimerList
  937. globals read: ALL
  938. globals written: ALL
  939. Function name:prvSampleTimeNow/25:
  940. locals read: xLastTime
  941. locals written: xLastTime
  942. globals read: ALL
  943. globals written: ALL
  944. Function name:prvProcessReceivedCommands/27:
  945. locals read: xTimerQueue
  946. locals written:
  947. globals read: ALL
  948. globals written: ALL
  949. Function name:prvSampleTimeNow/73:
  950. locals read: xLastTime
  951. locals written: xLastTime
  952. globals read: ALL
  953. globals written: ALL
  954. Function name:prvProcessTimerOrBlockTask/23:
  955. locals read: pxOverflowTimerList xTimerQueue
  956. locals written:
  957. globals read: ALL
  958. globals written: ALL
  959. Function name:prvGetNextExpireTime/24:
  960. locals read: pxCurrentTimerList
  961. locals written:
  962. globals read: pxCurrentTimerList
  963. globals written:
  964. Function name:prvTimerTask/22:
  965. locals read:
  966. locals written:
  967. globals read: ALL
  968. globals written:
  969. Function name:xTimerIsTimerActive/30:
  970. locals read:
  971. locals written:
  972. globals read: ALL
  973. globals written: ALL
  974. Function name:pvTimerGetTimerID/31:
  975. locals read:
  976. locals written:
  977. globals read: ALL
  978. globals written: ALL
  979. Function name:vTimerSetTimerID/32:
  980. locals read:
  981. locals written:
  982. globals read: ALL
  983. globals written: ALL
  984. Function name:xTimerPendFunctionCallFromISR/33:
  985. locals read: xTimerQueue
  986. locals written:
  987. globals read: ALL
  988. globals written: ALL
  989. Function name:xTimerPendFunctionCall/34:
  990. locals read: xTimerQueue
  991. locals written:
  992. globals read: ALL
  993. globals written: ALL
  994. Function name:uxTimerGetTimerNumber/35:
  995. locals read:
  996. locals written:
  997. globals read:
  998. globals written:
  999. Function name:vTimerSetTimerNumber/36:
  1000. locals read:
  1001. locals written:
  1002. globals read:
  1003. globals written:
  1004. prvInsertTimerInActiveList.part.0 (struct Timer_t * const pxTimer)
  1005. {
  1006. BaseType_t xProcessTimerNow;
  1007. const TickType_t xNextExpiryTime;
  1008. const TickType_t xTimeNow;
  1009. const TickType_t xCommandTime;
  1010. struct List_t * pxOverflowTimerList.14_1;
  1011. struct ListItem_t * _3;
  1012. <bb 4> [local count: 1073741824]:
  1013. # DEBUG D#6 s=> xNextExpiryTime
  1014. # DEBUG xNextExpiryTime => D#6
  1015. # DEBUG D#5 s=> xTimeNow
  1016. # DEBUG xTimeNow => D#5
  1017. # DEBUG D#4 s=> xCommandTime
  1018. # DEBUG xCommandTime => D#4
  1019. <bb 2> [local count: 1073741824]:
  1020. # DEBUG BEGIN_STMT
  1021. pxOverflowTimerList.14_1 = pxOverflowTimerList;
  1022. _3 = &pxTimer_2(D)->xTimerListItem;
  1023. vListInsert (pxOverflowTimerList.14_1, _3);
  1024. <bb 3> [local count: 1073741824]:
  1025. # xProcessTimerNow_4 = PHI <0(2)>
  1026. # DEBUG xProcessTimerNow => xProcessTimerNow_4
  1027. # DEBUG BEGIN_STMT
  1028. return xProcessTimerNow_4;
  1029. }
  1030. vTimerSetTimerNumber (struct tmrTimerControl * xTimer, UBaseType_t uxTimerNumber)
  1031. {
  1032. <bb 2> [local count: 1073741824]:
  1033. # DEBUG BEGIN_STMT
  1034. MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D);
  1035. return;
  1036. }
  1037. uxTimerGetTimerNumber (struct tmrTimerControl * xTimer)
  1038. {
  1039. UBaseType_t _3;
  1040. <bb 2> [local count: 1073741824]:
  1041. # DEBUG BEGIN_STMT
  1042. _3 = MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber;
  1043. return _3;
  1044. }
  1045. xTimerPendFunctionCall (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait)
  1046. {
  1047. uint32_t ulNewBASEPRI;
  1048. BaseType_t xReturn;
  1049. struct DaemonTaskMessage_t xMessage;
  1050. struct QueueDefinition * xTimerQueue.26_1;
  1051. <bb 2> [local count: 230763]:
  1052. # DEBUG BEGIN_STMT
  1053. # DEBUG BEGIN_STMT
  1054. # DEBUG BEGIN_STMT
  1055. xTimerQueue.26_1 = xTimerQueue;
  1056. if (xTimerQueue.26_1 == 0B)
  1057. goto <bb 3>; [46.53%]
  1058. else
  1059. goto <bb 5>; [53.47%]
  1060. <bb 3> [local count: 107374]:
  1061. # DEBUG BEGIN_STMT
  1062. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1063. # DEBUG BEGIN_STMT
  1064. # DEBUG BEGIN_STMT
  1065. __asm__ __volatile__(" mov %0, %1
  1066. msr basepri, %0
  1067. isb
  1068. dsb
  1069. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  1070. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  1071. <bb 4> [local count: 1073741824]:
  1072. # DEBUG ulNewBASEPRI => NULL
  1073. # DEBUG BEGIN_STMT
  1074. # DEBUG BEGIN_STMT
  1075. # DEBUG BEGIN_STMT
  1076. <bb 6> [local count: 1073741824]:
  1077. goto <bb 4>; [100.00%]
  1078. <bb 5> [local count: 123389]:
  1079. # DEBUG BEGIN_STMT
  1080. # DEBUG BEGIN_STMT
  1081. xMessage.xMessageID = -1;
  1082. # DEBUG BEGIN_STMT
  1083. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  1084. # DEBUG BEGIN_STMT
  1085. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  1086. # DEBUG BEGIN_STMT
  1087. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  1088. # DEBUG BEGIN_STMT
  1089. xReturn_12 = xQueueGenericSend (xTimerQueue.26_1, &xMessage, xTicksToWait_10(D), 0);
  1090. # DEBUG xReturn => xReturn_12
  1091. # DEBUG BEGIN_STMT
  1092. # DEBUG BEGIN_STMT
  1093. xMessage ={v} {CLOBBER};
  1094. return xReturn_12;
  1095. }
  1096. xTimerPendFunctionCallFromISR (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, BaseType_t * pxHigherPriorityTaskWoken)
  1097. {
  1098. BaseType_t xReturn;
  1099. struct DaemonTaskMessage_t xMessage;
  1100. struct QueueDefinition * xTimerQueue.25_1;
  1101. <bb 2> [local count: 1073741824]:
  1102. # DEBUG BEGIN_STMT
  1103. # DEBUG BEGIN_STMT
  1104. # DEBUG BEGIN_STMT
  1105. xMessage.xMessageID = -2;
  1106. # DEBUG BEGIN_STMT
  1107. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  1108. # DEBUG BEGIN_STMT
  1109. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  1110. # DEBUG BEGIN_STMT
  1111. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  1112. # DEBUG BEGIN_STMT
  1113. xTimerQueue.25_1 = xTimerQueue;
  1114. xReturn_12 = xQueueGenericSendFromISR (xTimerQueue.25_1, &xMessage, pxHigherPriorityTaskWoken_10(D), 0);
  1115. # DEBUG xReturn => xReturn_12
  1116. # DEBUG BEGIN_STMT
  1117. # DEBUG BEGIN_STMT
  1118. xMessage ={v} {CLOBBER};
  1119. return xReturn_12;
  1120. }
  1121. vTimerSetTimerID (struct tmrTimerControl * xTimer, void * pvNewID)
  1122. {
  1123. uint32_t ulNewBASEPRI;
  1124. <bb 2> [local count: 230763]:
  1125. # DEBUG BEGIN_STMT
  1126. # DEBUG pxTimer => xTimer_1(D)
  1127. # DEBUG BEGIN_STMT
  1128. if (xTimer_1(D) == 0B)
  1129. goto <bb 3>; [46.53%]
  1130. else
  1131. goto <bb 5>; [53.47%]
  1132. <bb 3> [local count: 107374]:
  1133. # DEBUG BEGIN_STMT
  1134. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1135. # DEBUG BEGIN_STMT
  1136. # DEBUG BEGIN_STMT
  1137. __asm__ __volatile__(" mov %0, %1
  1138. msr basepri, %0
  1139. isb
  1140. dsb
  1141. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1142. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1143. <bb 4> [local count: 1073741824]:
  1144. # DEBUG ulNewBASEPRI => NULL
  1145. # DEBUG BEGIN_STMT
  1146. # DEBUG BEGIN_STMT
  1147. # DEBUG BEGIN_STMT
  1148. <bb 6> [local count: 1073741824]:
  1149. goto <bb 4>; [100.00%]
  1150. <bb 5> [local count: 123389]:
  1151. # DEBUG BEGIN_STMT
  1152. # DEBUG BEGIN_STMT
  1153. vPortEnterCritical ();
  1154. # DEBUG BEGIN_STMT
  1155. MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID = pvNewID_4(D);
  1156. # DEBUG BEGIN_STMT
  1157. vPortExitCritical ();
  1158. return;
  1159. }
  1160. pvTimerGetTimerID (struct tmrTimerControl * const xTimer)
  1161. {
  1162. uint32_t ulNewBASEPRI;
  1163. void * pvReturn;
  1164. <bb 2> [local count: 230763]:
  1165. # DEBUG BEGIN_STMT
  1166. # DEBUG pxTimer => xTimer_1(D)
  1167. # DEBUG BEGIN_STMT
  1168. # DEBUG BEGIN_STMT
  1169. if (xTimer_1(D) == 0B)
  1170. goto <bb 3>; [46.53%]
  1171. else
  1172. goto <bb 5>; [53.47%]
  1173. <bb 3> [local count: 107374]:
  1174. # DEBUG BEGIN_STMT
  1175. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1176. # DEBUG BEGIN_STMT
  1177. # DEBUG BEGIN_STMT
  1178. __asm__ __volatile__(" mov %0, %1
  1179. msr basepri, %0
  1180. isb
  1181. dsb
  1182. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  1183. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  1184. <bb 4> [local count: 1073741824]:
  1185. # DEBUG ulNewBASEPRI => NULL
  1186. # DEBUG BEGIN_STMT
  1187. # DEBUG BEGIN_STMT
  1188. # DEBUG BEGIN_STMT
  1189. <bb 6> [local count: 1073741824]:
  1190. goto <bb 4>; [100.00%]
  1191. <bb 5> [local count: 123389]:
  1192. # DEBUG BEGIN_STMT
  1193. # DEBUG BEGIN_STMT
  1194. vPortEnterCritical ();
  1195. # DEBUG BEGIN_STMT
  1196. pvReturn_4 = MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID;
  1197. # DEBUG pvReturn => pvReturn_4
  1198. # DEBUG BEGIN_STMT
  1199. vPortExitCritical ();
  1200. # DEBUG BEGIN_STMT
  1201. return pvReturn_4;
  1202. }
  1203. xTimerIsTimerActive (struct tmrTimerControl * xTimer)
  1204. {
  1205. uint32_t ulNewBASEPRI;
  1206. unsigned char _1;
  1207. long int _2;
  1208. unsigned char _4;
  1209. <bb 2> [local count: 230763]:
  1210. # DEBUG BEGIN_STMT
  1211. # DEBUG BEGIN_STMT
  1212. # DEBUG pxTimer => xTimer_3(D)
  1213. # DEBUG BEGIN_STMT
  1214. if (xTimer_3(D) == 0B)
  1215. goto <bb 3>; [46.53%]
  1216. else
  1217. goto <bb 5>; [53.47%]
  1218. <bb 3> [local count: 107374]:
  1219. # DEBUG BEGIN_STMT
  1220. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1221. # DEBUG BEGIN_STMT
  1222. # DEBUG BEGIN_STMT
  1223. __asm__ __volatile__(" mov %0, %1
  1224. msr basepri, %0
  1225. isb
  1226. dsb
  1227. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1228. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1229. <bb 4> [local count: 1073741824]:
  1230. # DEBUG ulNewBASEPRI => NULL
  1231. # DEBUG BEGIN_STMT
  1232. # DEBUG BEGIN_STMT
  1233. # DEBUG BEGIN_STMT
  1234. <bb 6> [local count: 1073741824]:
  1235. goto <bb 4>; [100.00%]
  1236. <bb 5> [local count: 123389]:
  1237. # DEBUG BEGIN_STMT
  1238. # DEBUG BEGIN_STMT
  1239. vPortEnterCritical ();
  1240. # DEBUG BEGIN_STMT
  1241. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  1242. _4 = _1 & 1;
  1243. _2 = (long int) _4;
  1244. # DEBUG xReturn => _2
  1245. # DEBUG BEGIN_STMT
  1246. vPortExitCritical ();
  1247. # DEBUG BEGIN_STMT
  1248. return _2;
  1249. }
  1250. prvCheckForValidListAndQueue ()
  1251. {
  1252. struct QueueDefinition * xTimerQueue.17_1;
  1253. struct QueueDefinition * _2;
  1254. <bb 2> [local count: 1073741824]:
  1255. # DEBUG BEGIN_STMT
  1256. vPortEnterCritical ();
  1257. # DEBUG BEGIN_STMT
  1258. xTimerQueue.17_1 = xTimerQueue;
  1259. if (xTimerQueue.17_1 == 0B)
  1260. goto <bb 3>; [17.43%]
  1261. else
  1262. goto <bb 5>; [82.57%]
  1263. <bb 3> [local count: 187153200]:
  1264. # DEBUG BEGIN_STMT
  1265. vListInitialise (&xActiveTimerList1);
  1266. # DEBUG BEGIN_STMT
  1267. vListInitialise (&xActiveTimerList2);
  1268. # DEBUG BEGIN_STMT
  1269. pxCurrentTimerList = &xActiveTimerList1;
  1270. # DEBUG BEGIN_STMT
  1271. pxOverflowTimerList = &xActiveTimerList2;
  1272. # DEBUG BEGIN_STMT
  1273. _2 = xQueueGenericCreate (10, 16, 0);
  1274. xTimerQueue = _2;
  1275. # DEBUG BEGIN_STMT
  1276. if (_2 != 0B)
  1277. goto <bb 4>; [53.47%]
  1278. else
  1279. goto <bb 5>; [46.53%]
  1280. <bb 4> [local count: 100070816]:
  1281. # DEBUG BEGIN_STMT
  1282. vQueueAddToRegistry (_2, "TmrQ");
  1283. <bb 5> [local count: 1073741824]:
  1284. # DEBUG BEGIN_STMT
  1285. # DEBUG BEGIN_STMT
  1286. vPortExitCritical ();
  1287. return;
  1288. }
  1289. prvSwitchTimerLists ()
  1290. {
  1291. TickType_t xNextExpireTime;
  1292. struct xLIST_ITEM * _1;
  1293. struct List_t * pxCurrentTimerList.11_2;
  1294. long unsigned int _3;
  1295. struct List_t * pxOverflowTimerList.12_4;
  1296. struct List_t * pxCurrentTimerList.11_7;
  1297. <bb 2> [local count: 118111600]:
  1298. # DEBUG BEGIN_STMT
  1299. # DEBUG BEGIN_STMT
  1300. # DEBUG BEGIN_STMT
  1301. goto <bb 4>; [100.00%]
  1302. <bb 3> [local count: 955630223]:
  1303. # DEBUG BEGIN_STMT
  1304. _1 = pxCurrentTimerList.11_2->xListEnd.pxNext;
  1305. xNextExpireTime_10 = _1->xItemValue;
  1306. # DEBUG xNextExpireTime => xNextExpireTime_10
  1307. # DEBUG BEGIN_STMT
  1308. prvProcessExpiredTimer (xNextExpireTime_10, 4294967295);
  1309. <bb 4> [local count: 1073741824]:
  1310. # DEBUG BEGIN_STMT
  1311. pxCurrentTimerList.11_2 = pxCurrentTimerList;
  1312. _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems;
  1313. if (_3 != 0)
  1314. goto <bb 3>; [89.00%]
  1315. else
  1316. goto <bb 5>; [11.00%]
  1317. <bb 5> [local count: 118111601]:
  1318. # pxCurrentTimerList.11_7 = PHI <pxCurrentTimerList.11_2(4)>
  1319. # DEBUG BEGIN_STMT
  1320. # DEBUG pxTemp => pxCurrentTimerList.11_7
  1321. # DEBUG BEGIN_STMT
  1322. pxOverflowTimerList.12_4 = pxOverflowTimerList;
  1323. pxCurrentTimerList = pxOverflowTimerList.12_4;
  1324. # DEBUG BEGIN_STMT
  1325. pxOverflowTimerList = pxCurrentTimerList.11_7;
  1326. return;
  1327. }
  1328. prvProcessReceivedCommands ()
  1329. {
  1330. uint32_t ulNewBASEPRI;
  1331. TickType_t xTimeNow;
  1332. BaseType_t xTimerListsWereSwitched;
  1333. struct Timer_t * pxTimer;
  1334. struct DaemonTaskMessage_t xMessage;
  1335. long int _1;
  1336. void (*<T68e>) (void *, uint32_t) _2;
  1337. void * _3;
  1338. long unsigned int _4;
  1339. long int _5;
  1340. struct xLIST * _6;
  1341. struct ListItem_t * _7;
  1342. long int _8;
  1343. unsigned char _9;
  1344. unsigned char _10;
  1345. long unsigned int _11;
  1346. long unsigned int _12;
  1347. long unsigned int _13;
  1348. long int _15;
  1349. unsigned char _16;
  1350. long unsigned int _17;
  1351. long unsigned int _18;
  1352. long unsigned int _19;
  1353. unsigned char _21;
  1354. void (*<T689>) (struct tmrTimerControl *) _22;
  1355. unsigned char _23;
  1356. unsigned char _24;
  1357. unsigned char _25;
  1358. unsigned char _26;
  1359. long unsigned int _27;
  1360. long unsigned int _30;
  1361. unsigned char _31;
  1362. unsigned char _33;
  1363. struct QueueDefinition * xTimerQueue.16_34;
  1364. long int _35;
  1365. unsigned char _63;
  1366. unsigned char _65;
  1367. <bb 2> [local count: 10436763]:
  1368. # DEBUG BEGIN_STMT
  1369. # DEBUG BEGIN_STMT
  1370. # DEBUG BEGIN_STMT
  1371. # DEBUG BEGIN_STMT
  1372. # DEBUG BEGIN_STMT
  1373. goto <bb 23>; [100.00%]
  1374. <bb 3> [local count: 177477686]:
  1375. # DEBUG BEGIN_STMT
  1376. _1 = xMessage.xMessageID;
  1377. if (_1 < 0)
  1378. goto <bb 4>; [41.00%]
  1379. else
  1380. goto <bb 5>; [59.00%]
  1381. <bb 4> [local count: 72765851]:
  1382. # DEBUG BEGIN_STMT
  1383. # DEBUG pxCallback => &xMessage.u.xCallbackParameters
  1384. # DEBUG BEGIN_STMT
  1385. # DEBUG BEGIN_STMT
  1386. # DEBUG BEGIN_STMT
  1387. _2 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pxCallbackFunction;
  1388. _3 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pvParameter1;
  1389. _4 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].ulParameter2;
  1390. _2 (_3, _4);
  1391. <bb 5> [local count: 177477686]:
  1392. # DEBUG BEGIN_STMT
  1393. # DEBUG BEGIN_STMT
  1394. _5 = xMessage.xMessageID;
  1395. if (_5 >= 0)
  1396. goto <bb 6>; [5.50%]
  1397. else
  1398. goto <bb 29>; [94.50%]
  1399. <bb 29> [local count: 167716413]:
  1400. goto <bb 25>; [100.00%]
  1401. <bb 6> [local count: 9761273]:
  1402. # DEBUG BEGIN_STMT
  1403. pxTimer_47 = xMessage.u.xTimerParameters.pxTimer;
  1404. # DEBUG pxTimer => pxTimer_47
  1405. # DEBUG BEGIN_STMT
  1406. _6 = pxTimer_47->xTimerListItem.pvContainer;
  1407. if (_6 != 0B)
  1408. goto <bb 7>; [53.47%]
  1409. else
  1410. goto <bb 8>; [46.53%]
  1411. <bb 7> [local count: 5219353]:
  1412. # DEBUG BEGIN_STMT
  1413. _7 = &pxTimer_47->xTimerListItem;
  1414. uxListRemove (_7);
  1415. <bb 8> [local count: 9761273]:
  1416. # DEBUG BEGIN_STMT
  1417. # DEBUG BEGIN_STMT
  1418. # DEBUG BEGIN_STMT
  1419. xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  1420. # DEBUG xTimeNow => xTimeNow_50
  1421. # DEBUG BEGIN_STMT
  1422. _8 = xMessage.xMessageID;
  1423. switch (_8) <default: <L41> [20.00%], case 1 ... 2: <L11> [20.00%], case 3: <L21> [20.00%], case 4: <L23> [20.00%], case 5: <L28> [20.00%], case 6 ... 7: <L11> [20.00%], case 8: <L21> [20.00%], case 9: <L23> [20.00%]>
  1424. <bb 28> [local count: 1952255]:
  1425. <L41>:
  1426. goto <bb 24>; [100.00%]
  1427. <bb 9> [local count: 1952255]:
  1428. # pxTimer_14 = PHI <pxTimer_47(8)>
  1429. # xTimeNow_46 = PHI <xTimeNow_50(8)>
  1430. <L11>:
  1431. # DEBUG BEGIN_STMT
  1432. _9 = pxTimer_14->ucStatus;
  1433. _10 = _9 | 1;
  1434. pxTimer_14->ucStatus = _10;
  1435. # DEBUG BEGIN_STMT
  1436. _11 = xMessage.u.xTimerParameters.xMessageValue;
  1437. _12 = pxTimer_14->xTimerPeriodInTicks;
  1438. _13 = _11 + _12;
  1439. _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  1440. if (_15 != 0)
  1441. goto <bb 10>; [50.00%]
  1442. else
  1443. goto <bb 22>; [50.00%]
  1444. <bb 10> [local count: 976127]:
  1445. # DEBUG BEGIN_STMT
  1446. _16 = pxTimer_14->ucStatus;
  1447. _65 = _16 & 4;
  1448. if (_65 != 0)
  1449. goto <bb 11>; [33.00%]
  1450. else
  1451. goto <bb 12>; [67.00%]
  1452. <bb 11> [local count: 322122]:
  1453. # DEBUG BEGIN_STMT
  1454. _17 = xMessage.u.xTimerParameters.xMessageValue;
  1455. _18 = pxTimer_14->xTimerPeriodInTicks;
  1456. _19 = _17 + _18;
  1457. prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  1458. goto <bb 13>; [100.00%]
  1459. <bb 12> [local count: 654005]:
  1460. # DEBUG BEGIN_STMT
  1461. _21 = _16 & 254;
  1462. pxTimer_14->ucStatus = _21;
  1463. <bb 13> [local count: 976127]:
  1464. # DEBUG BEGIN_STMT
  1465. # DEBUG BEGIN_STMT
  1466. _22 = pxTimer_14->pxCallbackFunction;
  1467. _22 (pxTimer_14);
  1468. goto <bb 22>; [100.00%]
  1469. <bb 14> [local count: 1952255]:
  1470. # pxTimer_20 = PHI <pxTimer_47(8)>
  1471. <L21>:
  1472. # DEBUG BEGIN_STMT
  1473. _23 = pxTimer_20->ucStatus;
  1474. _24 = _23 & 254;
  1475. pxTimer_20->ucStatus = _24;
  1476. # DEBUG BEGIN_STMT
  1477. goto <bb 22>; [100.00%]
  1478. <bb 15> [local count: 1952255]:
  1479. # pxTimer_44 = PHI <pxTimer_47(8)>
  1480. # xTimeNow_67 = PHI <xTimeNow_50(8)>
  1481. <L23>:
  1482. # DEBUG BEGIN_STMT
  1483. _25 = pxTimer_44->ucStatus;
  1484. _26 = _25 | 1;
  1485. pxTimer_44->ucStatus = _26;
  1486. # DEBUG BEGIN_STMT
  1487. _27 = xMessage.u.xTimerParameters.xMessageValue;
  1488. pxTimer_44->xTimerPeriodInTicks = _27;
  1489. # DEBUG BEGIN_STMT
  1490. if (_27 == 0)
  1491. goto <bb 16>; [5.50%]
  1492. else
  1493. goto <bb 18>; [94.50%]
  1494. <bb 16> [local count: 107374]:
  1495. # DEBUG BEGIN_STMT
  1496. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1497. # DEBUG BEGIN_STMT
  1498. # DEBUG BEGIN_STMT
  1499. __asm__ __volatile__(" mov %0, %1
  1500. msr basepri, %0
  1501. isb
  1502. dsb
  1503. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  1504. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  1505. <bb 17> [local count: 1073741824]:
  1506. # DEBUG ulNewBASEPRI => NULL
  1507. # DEBUG BEGIN_STMT
  1508. # DEBUG BEGIN_STMT
  1509. # DEBUG BEGIN_STMT
  1510. <bb 27> [local count: 1073741824]:
  1511. goto <bb 17>; [100.00%]
  1512. <bb 18> [local count: 1844881]:
  1513. # DEBUG BEGIN_STMT
  1514. # DEBUG BEGIN_STMT
  1515. _30 = _27 + xTimeNow_67;
  1516. prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  1517. # DEBUG BEGIN_STMT
  1518. goto <bb 22>; [100.00%]
  1519. <bb 19> [local count: 1952255]:
  1520. # pxTimer_56 = PHI <pxTimer_47(8)>
  1521. <L28>:
  1522. # DEBUG BEGIN_STMT
  1523. _31 = pxTimer_56->ucStatus;
  1524. _63 = _31 & 2;
  1525. if (_63 == 0)
  1526. goto <bb 20>; [33.00%]
  1527. else
  1528. goto <bb 21>; [67.00%]
  1529. <bb 20> [local count: 644244]:
  1530. # DEBUG BEGIN_STMT
  1531. vPortFree (pxTimer_56);
  1532. goto <bb 22>; [100.00%]
  1533. <bb 21> [local count: 1308011]:
  1534. # DEBUG BEGIN_STMT
  1535. _33 = _31 & 254;
  1536. pxTimer_56->ucStatus = _33;
  1537. <bb 22> [local count: 7701644]:
  1538. <bb 23> [local count: 18138407]:
  1539. <bb 24> [local count: 20090662]:
  1540. <L38>:
  1541. <bb 25> [local count: 187807075]:
  1542. # DEBUG BEGIN_STMT
  1543. xTimerQueue.16_34 = xTimerQueue;
  1544. _35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  1545. if (_35 != 0)
  1546. goto <bb 3>; [94.50%]
  1547. else
  1548. goto <bb 26>; [5.50%]
  1549. <bb 26> [local count: 10329389]:
  1550. xMessage ={v} {CLOBBER};
  1551. xTimerListsWereSwitched ={v} {CLOBBER};
  1552. return;
  1553. }
  1554. prvInsertTimerInActiveList (struct Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime)
  1555. {
  1556. BaseType_t xProcessTimerNow;
  1557. long unsigned int _1;
  1558. long unsigned int _2;
  1559. struct List_t * pxCurrentTimerList.15_3;
  1560. struct ListItem_t * _4;
  1561. <bb 2> [local count: 1073741824]:
  1562. # DEBUG BEGIN_STMT
  1563. # DEBUG xProcessTimerNow => 0
  1564. # DEBUG BEGIN_STMT
  1565. pxTimer_8(D)->xTimerListItem.xItemValue = xNextExpiryTime_9(D);
  1566. # DEBUG BEGIN_STMT
  1567. pxTimer_8(D)->xTimerListItem.pvOwner = pxTimer_8(D);
  1568. # DEBUG BEGIN_STMT
  1569. if (xNextExpiryTime_9(D) <= xTimeNow_12(D))
  1570. goto <bb 3>; [50.00%]
  1571. else
  1572. goto <bb 5>; [50.00%]
  1573. <bb 3> [local count: 536870913]:
  1574. # DEBUG BEGIN_STMT
  1575. _1 = xTimeNow_12(D) - xCommandTime_13(D);
  1576. _2 = pxTimer_8(D)->xTimerPeriodInTicks;
  1577. if (_1 >= _2)
  1578. goto <bb 8>; [67.00%]
  1579. else
  1580. goto <bb 4>; [33.00%]
  1581. <bb 4> [local count: 177167400]:
  1582. # DEBUG D#1 => xNextExpiryTime_9(D)
  1583. # DEBUG D#2 => xTimeNow_12(D)
  1584. # DEBUG D#3 => xCommandTime_13(D)
  1585. xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D));
  1586. goto <bb 8>; [100.00%]
  1587. <bb 5> [local count: 536870913]:
  1588. # DEBUG BEGIN_STMT
  1589. if (xTimeNow_12(D) < xCommandTime_13(D))
  1590. goto <bb 6>; [67.00%]
  1591. else
  1592. goto <bb 7>; [33.00%]
  1593. <bb 6> [local count: 359703511]:
  1594. if (xNextExpiryTime_9(D) >= xCommandTime_13(D))
  1595. goto <bb 8>; [50.00%]
  1596. else
  1597. goto <bb 7>; [50.00%]
  1598. <bb 7> [local count: 357019157]:
  1599. # DEBUG BEGIN_STMT
  1600. pxCurrentTimerList.15_3 = pxCurrentTimerList;
  1601. _4 = &pxTimer_8(D)->xTimerListItem;
  1602. vListInsert (pxCurrentTimerList.15_3, _4);
  1603. <bb 8> [local count: 1073741824]:
  1604. # xProcessTimerNow_5 = PHI <xProcessTimerNow_16(4), 1(6), 0(7), 1(3)>
  1605. # DEBUG xProcessTimerNow => xProcessTimerNow_5
  1606. # DEBUG BEGIN_STMT
  1607. return xProcessTimerNow_5;
  1608. }
  1609. prvSampleTimeNow (BaseType_t * const pxTimerListsWereSwitched)
  1610. {
  1611. static TickType_t xLastTime = 0;
  1612. TickType_t xTimeNow;
  1613. long unsigned int xLastTime.9_1;
  1614. <bb 2> [local count: 1073741824]:
  1615. # DEBUG BEGIN_STMT
  1616. # DEBUG BEGIN_STMT
  1617. # DEBUG BEGIN_STMT
  1618. xTimeNow_5 = xTaskGetTickCount ();
  1619. # DEBUG xTimeNow => xTimeNow_5
  1620. # DEBUG BEGIN_STMT
  1621. xLastTime.9_1 = xLastTime;
  1622. if (xLastTime.9_1 > xTimeNow_5)
  1623. goto <bb 3>; [33.00%]
  1624. else
  1625. goto <bb 4>; [67.00%]
  1626. <bb 3> [local count: 354334802]:
  1627. # DEBUG BEGIN_STMT
  1628. prvSwitchTimerLists ();
  1629. # DEBUG BEGIN_STMT
  1630. *pxTimerListsWereSwitched_6(D) = 1;
  1631. goto <bb 5>; [100.00%]
  1632. <bb 4> [local count: 719407023]:
  1633. # DEBUG BEGIN_STMT
  1634. *pxTimerListsWereSwitched_6(D) = 0;
  1635. <bb 5> [local count: 1073741824]:
  1636. # DEBUG BEGIN_STMT
  1637. xLastTime = xTimeNow_5;
  1638. # DEBUG BEGIN_STMT
  1639. return xTimeNow_5;
  1640. }
  1641. prvGetNextExpireTime (BaseType_t * const pxListWasEmpty)
  1642. {
  1643. TickType_t xNextExpireTime;
  1644. struct List_t * pxCurrentTimerList.3_1;
  1645. long unsigned int _2;
  1646. struct xLIST_ITEM * _3;
  1647. long int iftmp.2_5;
  1648. <bb 2> [local count: 1073741824]:
  1649. # DEBUG BEGIN_STMT
  1650. # DEBUG BEGIN_STMT
  1651. pxCurrentTimerList.3_1 = pxCurrentTimerList;
  1652. _2 ={v} pxCurrentTimerList.3_1->uxNumberOfItems;
  1653. if (_2 == 0)
  1654. goto <bb 4>; [50.00%]
  1655. else
  1656. goto <bb 3>; [50.00%]
  1657. <bb 3> [local count: 536870913]:
  1658. <bb 4> [local count: 1073741824]:
  1659. # iftmp.2_5 = PHI <1(2), 0(3)>
  1660. *pxListWasEmpty_7(D) = iftmp.2_5;
  1661. # DEBUG BEGIN_STMT
  1662. if (iftmp.2_5 == 0)
  1663. goto <bb 5>; [50.00%]
  1664. else
  1665. goto <bb 6>; [50.00%]
  1666. <bb 5> [local count: 536870913]:
  1667. # DEBUG BEGIN_STMT
  1668. _3 = pxCurrentTimerList.3_1->xListEnd.pxNext;
  1669. xNextExpireTime_9 = _3->xItemValue;
  1670. # DEBUG xNextExpireTime => xNextExpireTime_9
  1671. <bb 6> [local count: 1073741824]:
  1672. # xNextExpireTime_4 = PHI <xNextExpireTime_9(5), 0(4)>
  1673. # DEBUG xNextExpireTime => xNextExpireTime_4
  1674. # DEBUG BEGIN_STMT
  1675. return xNextExpireTime_4;
  1676. }
  1677. prvProcessTimerOrBlockTask (const TickType_t xNextExpireTime, BaseType_t xListWasEmpty)
  1678. {
  1679. BaseType_t xTimerListsWereSwitched;
  1680. TickType_t xTimeNow;
  1681. long int xTimerListsWereSwitched.5_1;
  1682. struct List_t * pxOverflowTimerList.7_2;
  1683. long unsigned int _3;
  1684. struct QueueDefinition * xTimerQueue.8_4;
  1685. long unsigned int _5;
  1686. long int _6;
  1687. <bb 2> [local count: 1073741823]:
  1688. # DEBUG BEGIN_STMT
  1689. # DEBUG BEGIN_STMT
  1690. # DEBUG BEGIN_STMT
  1691. vTaskSuspendAll ();
  1692. # DEBUG BEGIN_STMT
  1693. xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched);
  1694. # DEBUG xTimeNow => xTimeNow_12
  1695. # DEBUG BEGIN_STMT
  1696. xTimerListsWereSwitched.5_1 = xTimerListsWereSwitched;
  1697. if (xTimerListsWereSwitched.5_1 == 0)
  1698. goto <bb 3>; [67.00%]
  1699. else
  1700. goto <bb 12>; [33.00%]
  1701. <bb 3> [local count: 719407022]:
  1702. # DEBUG BEGIN_STMT
  1703. if (xListWasEmpty_14(D) == 0)
  1704. goto <bb 4>; [50.00%]
  1705. else
  1706. goto <bb 6>; [50.00%]
  1707. <bb 4> [local count: 359703511]:
  1708. if (xTimeNow_12 >= xNextExpireTime_15(D))
  1709. goto <bb 5>; [33.00%]
  1710. else
  1711. goto <bb 6>; [67.00%]
  1712. <bb 5> [local count: 118702158]:
  1713. # DEBUG BEGIN_STMT
  1714. xTaskResumeAll ();
  1715. # DEBUG BEGIN_STMT
  1716. prvProcessExpiredTimer (xNextExpireTime_15(D), xTimeNow_12);
  1717. goto <bb 13>; [100.00%]
  1718. <bb 6> [local count: 600704864]:
  1719. # DEBUG BEGIN_STMT
  1720. if (xListWasEmpty_14(D) != 0)
  1721. goto <bb 7>; [50.00%]
  1722. else
  1723. goto <bb 10>; [50.00%]
  1724. <bb 7> [local count: 300352432]:
  1725. # DEBUG BEGIN_STMT
  1726. pxOverflowTimerList.7_2 = pxOverflowTimerList;
  1727. _3 ={v} pxOverflowTimerList.7_2->uxNumberOfItems;
  1728. if (_3 == 0)
  1729. goto <bb 10>; [50.00%]
  1730. else
  1731. goto <bb 8>; [50.00%]
  1732. <bb 8> [local count: 150176216]:
  1733. <bb 10> [local count: 600704864]:
  1734. # xListWasEmpty_7 = PHI <xListWasEmpty_14(D)(6), 0(8), 1(7)>
  1735. # DEBUG xListWasEmpty => xListWasEmpty_7
  1736. # DEBUG BEGIN_STMT
  1737. xTimerQueue.8_4 = xTimerQueue;
  1738. _5 = xNextExpireTime_15(D) - xTimeNow_12;
  1739. vQueueWaitForMessageRestricted (xTimerQueue.8_4, _5, xListWasEmpty_7);
  1740. # DEBUG BEGIN_STMT
  1741. _6 = xTaskResumeAll ();
  1742. if (_6 == 0)
  1743. goto <bb 11>; [50.00%]
  1744. else
  1745. goto <bb 13>; [50.00%]
  1746. <bb 11> [local count: 300352432]:
  1747. # DEBUG BEGIN_STMT
  1748. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1749. # DEBUG BEGIN_STMT
  1750. __asm__ __volatile__("dsb" : : : "memory");
  1751. # DEBUG BEGIN_STMT
  1752. __asm__ __volatile__("isb");
  1753. # DEBUG BEGIN_STMT
  1754. goto <bb 13>; [100.00%]
  1755. <bb 12> [local count: 354334802]:
  1756. # DEBUG BEGIN_STMT
  1757. xTaskResumeAll ();
  1758. <bb 13> [local count: 1073741824]:
  1759. xTimerListsWereSwitched ={v} {CLOBBER};
  1760. return;
  1761. }
  1762. prvTimerTask (void * pvParameters)
  1763. {
  1764. BaseType_t xListWasEmpty;
  1765. TickType_t xNextExpireTime;
  1766. long int xListWasEmpty.1_1;
  1767. <bb 2> [local count: 107374]:
  1768. <bb 3> [local count: 1073741824]:
  1769. # DEBUG BEGIN_STMT
  1770. # DEBUG BEGIN_STMT
  1771. # DEBUG BEGIN_STMT
  1772. # DEBUG BEGIN_STMT
  1773. # DEBUG BEGIN_STMT
  1774. xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  1775. # DEBUG xNextExpireTime => xNextExpireTime_5
  1776. # DEBUG BEGIN_STMT
  1777. xListWasEmpty.1_1 = xListWasEmpty;
  1778. prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1);
  1779. # DEBUG BEGIN_STMT
  1780. prvProcessReceivedCommands ();
  1781. # DEBUG BEGIN_STMT
  1782. <bb 4> [local count: 1073741824]:
  1783. goto <bb 3>; [100.00%]
  1784. }
  1785. prvProcessExpiredTimer (const TickType_t xNextExpireTime, const TickType_t xTimeNow)
  1786. {
  1787. struct Timer_t * const pxTimer;
  1788. struct List_t * pxCurrentTimerList.13_1;
  1789. struct xLIST_ITEM * _2;
  1790. struct ListItem_t * _3;
  1791. unsigned char _4;
  1792. unsigned char _5;
  1793. void (*<T689>) (struct tmrTimerControl *) _6;
  1794. unsigned char _16;
  1795. <bb 2> [local count: 1073741824]:
  1796. # DEBUG BEGIN_STMT
  1797. pxCurrentTimerList.13_1 = pxCurrentTimerList;
  1798. _2 = pxCurrentTimerList.13_1->xListEnd.pxNext;
  1799. pxTimer_9 = _2->pvOwner;
  1800. # DEBUG pxTimer => pxTimer_9
  1801. # DEBUG BEGIN_STMT
  1802. _3 = &pxTimer_9->xTimerListItem;
  1803. uxListRemove (_3);
  1804. # DEBUG BEGIN_STMT
  1805. _4 = pxTimer_9->ucStatus;
  1806. _16 = _4 & 4;
  1807. if (_16 != 0)
  1808. goto <bb 3>; [33.00%]
  1809. else
  1810. goto <bb 4>; [67.00%]
  1811. <bb 3> [local count: 354334802]:
  1812. # DEBUG BEGIN_STMT
  1813. prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  1814. goto <bb 5>; [100.00%]
  1815. <bb 4> [local count: 719407023]:
  1816. # DEBUG BEGIN_STMT
  1817. _5 = _4 & 254;
  1818. pxTimer_9->ucStatus = _5;
  1819. <bb 5> [local count: 1073741824]:
  1820. # DEBUG BEGIN_STMT
  1821. # DEBUG BEGIN_STMT
  1822. _6 = pxTimer_9->pxCallbackFunction;
  1823. _6 (pxTimer_9);
  1824. return;
  1825. }
  1826. prvReloadTimer (struct Timer_t * const pxTimer, TickType_t xExpiredTime, const TickType_t xTimeNow)
  1827. {
  1828. long unsigned int _1;
  1829. void (*<T689>) (struct tmrTimerControl *) _2;
  1830. long unsigned int _3;
  1831. long unsigned int _4;
  1832. long int _5;
  1833. <bb 2> [local count: 118111600]:
  1834. # DEBUG BEGIN_STMT
  1835. goto <bb 4>; [100.00%]
  1836. <bb 3> [local count: 955630223]:
  1837. # DEBUG BEGIN_STMT
  1838. _1 = pxTimer_10(D)->xTimerPeriodInTicks;
  1839. xExpiredTime_13 = _1 + xExpiredTime_6;
  1840. # DEBUG xExpiredTime => xExpiredTime_13
  1841. # DEBUG BEGIN_STMT
  1842. # DEBUG BEGIN_STMT
  1843. _2 = pxTimer_10(D)->pxCallbackFunction;
  1844. _2 (pxTimer_10(D));
  1845. <bb 4> [local count: 1073741824]:
  1846. # xExpiredTime_6 = PHI <xExpiredTime_8(D)(2), xExpiredTime_13(3)>
  1847. # DEBUG xExpiredTime => xExpiredTime_6
  1848. # DEBUG BEGIN_STMT
  1849. _3 = pxTimer_10(D)->xTimerPeriodInTicks;
  1850. _4 = _3 + xExpiredTime_6;
  1851. _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  1852. if (_5 != 0)
  1853. goto <bb 3>; [89.00%]
  1854. else
  1855. goto <bb 5>; [11.00%]
  1856. <bb 5> [local count: 118111601]:
  1857. return;
  1858. }
  1859. pcTimerGetName (struct tmrTimerControl * xTimer)
  1860. {
  1861. uint32_t ulNewBASEPRI;
  1862. const char * _3;
  1863. <bb 2> [local count: 357913]:
  1864. # DEBUG BEGIN_STMT
  1865. # DEBUG pxTimer => xTimer_1(D)
  1866. # DEBUG BEGIN_STMT
  1867. if (xTimer_1(D) == 0B)
  1868. goto <bb 3>; [30.00%]
  1869. else
  1870. goto <bb 5>; [70.00%]
  1871. <bb 3> [local count: 107374]:
  1872. # DEBUG BEGIN_STMT
  1873. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1874. # DEBUG BEGIN_STMT
  1875. # DEBUG BEGIN_STMT
  1876. __asm__ __volatile__(" mov %0, %1
  1877. msr basepri, %0
  1878. isb
  1879. dsb
  1880. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1881. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1882. <bb 4> [local count: 1073741824]:
  1883. # DEBUG ulNewBASEPRI => NULL
  1884. # DEBUG BEGIN_STMT
  1885. # DEBUG BEGIN_STMT
  1886. # DEBUG BEGIN_STMT
  1887. <bb 6> [local count: 1073741824]:
  1888. goto <bb 4>; [100.00%]
  1889. <bb 5> [local count: 250539]:
  1890. # DEBUG BEGIN_STMT
  1891. # DEBUG BEGIN_STMT
  1892. _3 = MEM[(struct Timer_t *)xTimer_1(D)].pcTimerName;
  1893. return _3;
  1894. }
  1895. xTimerGetExpiryTime (struct tmrTimerControl * xTimer)
  1896. {
  1897. uint32_t ulNewBASEPRI;
  1898. TickType_t xReturn;
  1899. <bb 2> [local count: 357913]:
  1900. # DEBUG BEGIN_STMT
  1901. # DEBUG pxTimer => xTimer_1(D)
  1902. # DEBUG BEGIN_STMT
  1903. # DEBUG BEGIN_STMT
  1904. if (xTimer_1(D) == 0B)
  1905. goto <bb 3>; [30.00%]
  1906. else
  1907. goto <bb 5>; [70.00%]
  1908. <bb 3> [local count: 107374]:
  1909. # DEBUG BEGIN_STMT
  1910. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1911. # DEBUG BEGIN_STMT
  1912. # DEBUG BEGIN_STMT
  1913. __asm__ __volatile__(" mov %0, %1
  1914. msr basepri, %0
  1915. isb
  1916. dsb
  1917. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1918. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1919. <bb 4> [local count: 1073741824]:
  1920. # DEBUG ulNewBASEPRI => NULL
  1921. # DEBUG BEGIN_STMT
  1922. # DEBUG BEGIN_STMT
  1923. # DEBUG BEGIN_STMT
  1924. <bb 6> [local count: 1073741824]:
  1925. goto <bb 4>; [100.00%]
  1926. <bb 5> [local count: 250539]:
  1927. # DEBUG BEGIN_STMT
  1928. # DEBUG BEGIN_STMT
  1929. xReturn_3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerListItem.xItemValue;
  1930. # DEBUG xReturn => xReturn_3
  1931. # DEBUG BEGIN_STMT
  1932. return xReturn_3;
  1933. }
  1934. uxTimerGetReloadMode (struct tmrTimerControl * xTimer)
  1935. {
  1936. uint32_t ulNewBASEPRI;
  1937. UBaseType_t uxReturn;
  1938. unsigned char _1;
  1939. unsigned char _4;
  1940. <bb 2> [local count: 230763]:
  1941. # DEBUG BEGIN_STMT
  1942. # DEBUG pxTimer => xTimer_3(D)
  1943. # DEBUG BEGIN_STMT
  1944. # DEBUG BEGIN_STMT
  1945. if (xTimer_3(D) == 0B)
  1946. goto <bb 3>; [46.53%]
  1947. else
  1948. goto <bb 5>; [53.47%]
  1949. <bb 3> [local count: 107374]:
  1950. # DEBUG BEGIN_STMT
  1951. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1952. # DEBUG BEGIN_STMT
  1953. # DEBUG BEGIN_STMT
  1954. __asm__ __volatile__(" mov %0, %1
  1955. msr basepri, %0
  1956. isb
  1957. dsb
  1958. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1959. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1960. <bb 4> [local count: 1073741824]:
  1961. # DEBUG ulNewBASEPRI => NULL
  1962. # DEBUG BEGIN_STMT
  1963. # DEBUG BEGIN_STMT
  1964. # DEBUG BEGIN_STMT
  1965. <bb 8> [local count: 1073741824]:
  1966. goto <bb 4>; [100.00%]
  1967. <bb 5> [local count: 123389]:
  1968. # DEBUG BEGIN_STMT
  1969. # DEBUG BEGIN_STMT
  1970. vPortEnterCritical ();
  1971. # DEBUG BEGIN_STMT
  1972. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  1973. _4 = _1 & 4;
  1974. if (_4 == 0)
  1975. goto <bb 7>; [50.00%]
  1976. else
  1977. goto <bb 6>; [50.00%]
  1978. <bb 6> [local count: 61694]:
  1979. # DEBUG BEGIN_STMT
  1980. # DEBUG uxReturn => 1
  1981. <bb 7> [local count: 123389]:
  1982. # uxReturn_2 = PHI <0(5), 1(6)>
  1983. # DEBUG uxReturn => uxReturn_2
  1984. # DEBUG BEGIN_STMT
  1985. vPortExitCritical ();
  1986. # DEBUG BEGIN_STMT
  1987. return uxReturn_2;
  1988. }
  1989. vTimerSetReloadMode (struct tmrTimerControl * xTimer, const UBaseType_t uxAutoReload)
  1990. {
  1991. uint32_t ulNewBASEPRI;
  1992. unsigned char _1;
  1993. unsigned char _2;
  1994. unsigned char _3;
  1995. unsigned char _4;
  1996. <bb 2> [local count: 230763]:
  1997. # DEBUG BEGIN_STMT
  1998. # DEBUG pxTimer => xTimer_6(D)
  1999. # DEBUG BEGIN_STMT
  2000. if (xTimer_6(D) == 0B)
  2001. goto <bb 3>; [46.53%]
  2002. else
  2003. goto <bb 5>; [53.47%]
  2004. <bb 3> [local count: 107374]:
  2005. # DEBUG BEGIN_STMT
  2006. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2007. # DEBUG BEGIN_STMT
  2008. # DEBUG BEGIN_STMT
  2009. __asm__ __volatile__(" mov %0, %1
  2010. msr basepri, %0
  2011. isb
  2012. dsb
  2013. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  2014. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  2015. <bb 4> [local count: 1073741824]:
  2016. # DEBUG ulNewBASEPRI => NULL
  2017. # DEBUG BEGIN_STMT
  2018. # DEBUG BEGIN_STMT
  2019. # DEBUG BEGIN_STMT
  2020. <bb 9> [local count: 1073741824]:
  2021. goto <bb 4>; [100.00%]
  2022. <bb 5> [local count: 123389]:
  2023. # DEBUG BEGIN_STMT
  2024. # DEBUG BEGIN_STMT
  2025. vPortEnterCritical ();
  2026. # DEBUG BEGIN_STMT
  2027. if (uxAutoReload_9(D) != 0)
  2028. goto <bb 6>; [50.00%]
  2029. else
  2030. goto <bb 7>; [50.00%]
  2031. <bb 6> [local count: 61694]:
  2032. # DEBUG BEGIN_STMT
  2033. _1 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  2034. _2 = _1 | 4;
  2035. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _2;
  2036. goto <bb 8>; [100.00%]
  2037. <bb 7> [local count: 61694]:
  2038. # DEBUG BEGIN_STMT
  2039. _3 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  2040. _4 = _3 & 251;
  2041. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _4;
  2042. <bb 8> [local count: 123389]:
  2043. # DEBUG BEGIN_STMT
  2044. vPortExitCritical ();
  2045. return;
  2046. }
  2047. xTimerGetPeriod (struct tmrTimerControl * xTimer)
  2048. {
  2049. uint32_t ulNewBASEPRI;
  2050. TickType_t _3;
  2051. <bb 2> [local count: 357913]:
  2052. # DEBUG BEGIN_STMT
  2053. # DEBUG pxTimer => xTimer_1(D)
  2054. # DEBUG BEGIN_STMT
  2055. if (xTimer_1(D) == 0B)
  2056. goto <bb 3>; [30.00%]
  2057. else
  2058. goto <bb 5>; [70.00%]
  2059. <bb 3> [local count: 107374]:
  2060. # DEBUG BEGIN_STMT
  2061. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2062. # DEBUG BEGIN_STMT
  2063. # DEBUG BEGIN_STMT
  2064. __asm__ __volatile__(" mov %0, %1
  2065. msr basepri, %0
  2066. isb
  2067. dsb
  2068. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  2069. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  2070. <bb 4> [local count: 1073741824]:
  2071. # DEBUG ulNewBASEPRI => NULL
  2072. # DEBUG BEGIN_STMT
  2073. # DEBUG BEGIN_STMT
  2074. # DEBUG BEGIN_STMT
  2075. <bb 6> [local count: 1073741824]:
  2076. goto <bb 4>; [100.00%]
  2077. <bb 5> [local count: 250539]:
  2078. # DEBUG BEGIN_STMT
  2079. # DEBUG BEGIN_STMT
  2080. _3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerPeriodInTicks;
  2081. return _3;
  2082. }
  2083. xTimerGetTimerDaemonTaskHandle ()
  2084. {
  2085. uint32_t ulNewBASEPRI;
  2086. struct tskTaskControlBlock * xTimerTaskHandle.24_1;
  2087. <bb 2> [local count: 357913]:
  2088. # DEBUG BEGIN_STMT
  2089. xTimerTaskHandle.24_1 = xTimerTaskHandle;
  2090. if (xTimerTaskHandle.24_1 == 0B)
  2091. goto <bb 3>; [30.00%]
  2092. else
  2093. goto <bb 5>; [70.00%]
  2094. <bb 3> [local count: 107374]:
  2095. # DEBUG BEGIN_STMT
  2096. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2097. # DEBUG BEGIN_STMT
  2098. # DEBUG BEGIN_STMT
  2099. __asm__ __volatile__(" mov %0, %1
  2100. msr basepri, %0
  2101. isb
  2102. dsb
  2103. " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory");
  2104. # DEBUG ulNewBASEPRI => ulNewBASEPRI_3
  2105. <bb 4> [local count: 1073741824]:
  2106. # DEBUG ulNewBASEPRI => NULL
  2107. # DEBUG BEGIN_STMT
  2108. # DEBUG BEGIN_STMT
  2109. # DEBUG BEGIN_STMT
  2110. <bb 6> [local count: 1073741824]:
  2111. goto <bb 4>; [100.00%]
  2112. <bb 5> [local count: 250539]:
  2113. # DEBUG BEGIN_STMT
  2114. # DEBUG BEGIN_STMT
  2115. return xTimerTaskHandle.24_1;
  2116. }
  2117. xTimerGenericCommand (struct tmrTimerControl * xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait)
  2118. {
  2119. uint32_t ulNewBASEPRI;
  2120. struct DaemonTaskMessage_t xMessage;
  2121. BaseType_t xReturn;
  2122. struct QueueDefinition * xTimerQueue.20_1;
  2123. long int _2;
  2124. struct QueueDefinition * xTimerQueue.21_3;
  2125. struct QueueDefinition * xTimerQueue.22_4;
  2126. <bb 2> [local count: 357913]:
  2127. # DEBUG BEGIN_STMT
  2128. # DEBUG xReturn => 0
  2129. # DEBUG BEGIN_STMT
  2130. # DEBUG BEGIN_STMT
  2131. if (xTimer_7(D) == 0B)
  2132. goto <bb 3>; [30.00%]
  2133. else
  2134. goto <bb 5>; [70.00%]
  2135. <bb 3> [local count: 107374]:
  2136. # DEBUG BEGIN_STMT
  2137. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2138. # DEBUG BEGIN_STMT
  2139. # DEBUG BEGIN_STMT
  2140. __asm__ __volatile__(" mov %0, %1
  2141. msr basepri, %0
  2142. isb
  2143. dsb
  2144. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  2145. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  2146. <bb 4> [local count: 1073741824]:
  2147. # DEBUG ulNewBASEPRI => NULL
  2148. # DEBUG BEGIN_STMT
  2149. # DEBUG BEGIN_STMT
  2150. # DEBUG BEGIN_STMT
  2151. <bb 12> [local count: 1073741824]:
  2152. goto <bb 4>; [100.00%]
  2153. <bb 5> [local count: 250539]:
  2154. # DEBUG BEGIN_STMT
  2155. # DEBUG BEGIN_STMT
  2156. xTimerQueue.20_1 = xTimerQueue;
  2157. if (xTimerQueue.20_1 != 0B)
  2158. goto <bb 6>; [70.00%]
  2159. else
  2160. goto <bb 11>; [30.00%]
  2161. <bb 6> [local count: 175378]:
  2162. # DEBUG BEGIN_STMT
  2163. xMessage.xMessageID = xCommandID_9(D);
  2164. # DEBUG BEGIN_STMT
  2165. xMessage.u.xTimerParameters.xMessageValue = xOptionalValue_11(D);
  2166. # DEBUG BEGIN_STMT
  2167. xMessage.u.xTimerParameters.pxTimer = xTimer_7(D);
  2168. # DEBUG BEGIN_STMT
  2169. if (xCommandID_9(D) <= 5)
  2170. goto <bb 7>; [50.00%]
  2171. else
  2172. goto <bb 10>; [50.00%]
  2173. <bb 7> [local count: 87689]:
  2174. # DEBUG BEGIN_STMT
  2175. _2 = xTaskGetSchedulerState ();
  2176. if (_2 == 2)
  2177. goto <bb 8>; [34.00%]
  2178. else
  2179. goto <bb 9>; [66.00%]
  2180. <bb 8> [local count: 29814]:
  2181. # DEBUG BEGIN_STMT
  2182. xTimerQueue.21_3 = xTimerQueue;
  2183. xReturn_22 = xQueueGenericSend (xTimerQueue.21_3, &xMessage, xTicksToWait_20(D), 0);
  2184. # DEBUG xReturn => xReturn_22
  2185. goto <bb 11>; [100.00%]
  2186. <bb 9> [local count: 57875]:
  2187. # DEBUG BEGIN_STMT
  2188. xTimerQueue.22_4 = xTimerQueue;
  2189. xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0);
  2190. # DEBUG xReturn => xReturn_19
  2191. goto <bb 11>; [100.00%]
  2192. <bb 10> [local count: 87689]:
  2193. # DEBUG BEGIN_STMT
  2194. xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0);
  2195. # DEBUG xReturn => xReturn_16
  2196. <bb 11> [local count: 250539]:
  2197. # xReturn_5 = PHI <0(5), xReturn_16(10), xReturn_19(9), xReturn_22(8)>
  2198. # DEBUG xReturn => xReturn_5
  2199. # DEBUG BEGIN_STMT
  2200. # DEBUG BEGIN_STMT
  2201. xMessage ={v} {CLOBBER};
  2202. return xReturn_5;
  2203. }
  2204. xTimerCreate (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction)
  2205. {
  2206. struct Timer_t * pxNewTimer;
  2207. <bb 2> [local count: 1073741824]:
  2208. # DEBUG BEGIN_STMT
  2209. # DEBUG BEGIN_STMT
  2210. pxNewTimer_4 = pvPortMalloc (44);
  2211. # DEBUG pxNewTimer => pxNewTimer_4
  2212. # DEBUG BEGIN_STMT
  2213. if (pxNewTimer_4 != 0B)
  2214. goto <bb 3>; [53.47%]
  2215. else
  2216. goto <bb 4>; [46.53%]
  2217. <bb 3> [local count: 574129754]:
  2218. # DEBUG BEGIN_STMT
  2219. pxNewTimer_4->ucStatus = 0;
  2220. # DEBUG BEGIN_STMT
  2221. prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  2222. <bb 4> [local count: 1073741824]:
  2223. # DEBUG BEGIN_STMT
  2224. return pxNewTimer_4;
  2225. }
  2226. xTimerCreateTimerTask ()
  2227. {
  2228. uint32_t ulNewBASEPRI;
  2229. BaseType_t xReturn;
  2230. struct QueueDefinition * xTimerQueue.0_1;
  2231. <bb 2> [local count: 146556]:
  2232. # DEBUG BEGIN_STMT
  2233. # DEBUG xReturn => 0
  2234. # DEBUG BEGIN_STMT
  2235. prvCheckForValidListAndQueue ();
  2236. # DEBUG BEGIN_STMT
  2237. xTimerQueue.0_1 = xTimerQueue;
  2238. if (xTimerQueue.0_1 != 0B)
  2239. goto <bb 4>; [53.47%]
  2240. else
  2241. goto <bb 5>; [46.53%]
  2242. <bb 4> [local count: 78363]:
  2243. # DEBUG BEGIN_STMT
  2244. xReturn_5 = xTaskCreate (prvTimerTask, "Tmr Svc", 180, 0B, 2, &xTimerTaskHandle);
  2245. # DEBUG xReturn => xReturn_5
  2246. # DEBUG BEGIN_STMT
  2247. # DEBUG BEGIN_STMT
  2248. if (xReturn_5 == 0)
  2249. goto <bb 5>; [50.00%]
  2250. else
  2251. goto <bb 7>; [50.00%]
  2252. <bb 5> [local count: 107374]:
  2253. # DEBUG xReturn => NULL
  2254. # DEBUG BEGIN_STMT
  2255. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2256. # DEBUG BEGIN_STMT
  2257. # DEBUG BEGIN_STMT
  2258. __asm__ __volatile__(" mov %0, %1
  2259. msr basepri, %0
  2260. isb
  2261. dsb
  2262. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  2263. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  2264. <bb 6> [local count: 1073741824]:
  2265. # DEBUG ulNewBASEPRI => NULL
  2266. # DEBUG BEGIN_STMT
  2267. # DEBUG BEGIN_STMT
  2268. # DEBUG BEGIN_STMT
  2269. <bb 8> [local count: 1073741824]:
  2270. goto <bb 6>; [100.00%]
  2271. <bb 7> [local count: 39182]:
  2272. # DEBUG BEGIN_STMT
  2273. # DEBUG BEGIN_STMT
  2274. return xReturn_5;
  2275. }