timers.c.071i.devirt 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055
  1. Symbol table:
  2. prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05e55a80
  3. Type: function definition analyzed
  4. Visibility: prevailing_def_ironly artificial
  5. References: pxOverflowTimerList/7 (read)
  6. Referring:
  7. Availability: local
  8. Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  9. Called by: prvInsertTimerInActiveList/26 (177167400 (estimated locally),0.16 per call)
  10. Calls: vListInsert/44 (1073741824 (estimated locally),1.00 per call)
  11. xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f5cc40
  12. Type: function
  13. Visibility: external public
  14. References:
  15. Referring:
  16. Availability: not_available
  17. Function flags: optimize_size
  18. Called by: xTimerPendFunctionCallFromISR/33 (1073741824 (estimated locally),1.00 per call) xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  19. Calls:
  20. xQueueGenericSend/55 (xQueueGenericSend) @05f5cb60
  21. Type: function
  22. Visibility: external public
  23. References:
  24. Referring:
  25. Availability: not_available
  26. Function flags: optimize_size
  27. 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)
  28. Calls:
  29. xTaskGetSchedulerState/54 (xTaskGetSchedulerState) @05f5ca80
  30. Type: function
  31. Visibility: external public
  32. References:
  33. Referring:
  34. Availability: not_available
  35. Function flags: optimize_size
  36. Called by: xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  37. Calls:
  38. vListInitialiseItem/53 (vListInitialiseItem) @05f5c8c0
  39. Type: function
  40. Visibility: external public
  41. References:
  42. Referring:
  43. Availability: not_available
  44. Function flags: optimize_size
  45. Called by: prvInitialiseNewTimer/12 (52886 (estimated locally),0.33 per call)
  46. Calls:
  47. pvPortMalloc/52 (pvPortMalloc) @05f5c700
  48. Type: function
  49. Visibility: external public
  50. References:
  51. Referring:
  52. Availability: not_available
  53. Function flags: optimize_size
  54. Called by: xTimerCreate/11 (1073741824 (estimated locally),1.00 per call)
  55. Calls:
  56. vPortExitCritical/51 (vPortExitCritical) @05f5c460
  57. Type: function
  58. Visibility: external public
  59. References:
  60. Referring:
  61. Availability: not_available
  62. Function flags: optimize_size
  63. 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)
  64. Calls:
  65. vQueueAddToRegistry/50 (vQueueAddToRegistry) @05f5c380
  66. Type: function
  67. Visibility: external public
  68. References:
  69. Referring:
  70. Availability: not_available
  71. Function flags: optimize_size
  72. Called by: prvCheckForValidListAndQueue/29 (100070816 (estimated locally),0.09 per call)
  73. Calls:
  74. xQueueGenericCreate/49 (xQueueGenericCreate) @05f5c2a0
  75. Type: function
  76. Visibility: external public
  77. References:
  78. Referring:
  79. Availability: not_available
  80. Function flags: optimize_size
  81. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  82. Calls:
  83. vListInitialise/48 (vListInitialise) @05f5c0e0
  84. Type: function
  85. Visibility: external public
  86. References:
  87. Referring:
  88. Availability: not_available
  89. Function flags: optimize_size
  90. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  91. Calls:
  92. vPortEnterCritical/47 (vPortEnterCritical) @05f5c000
  93. Type: function
  94. Visibility: external public
  95. References:
  96. Referring:
  97. Availability: not_available
  98. Function flags: optimize_size
  99. 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)
  100. Calls:
  101. xQueueReceive/46 (xQueueReceive) @05f36e00
  102. Type: function
  103. Visibility: external public
  104. References:
  105. Referring:
  106. Availability: not_available
  107. Function flags: optimize_size
  108. Called by: prvProcessReceivedCommands/27 (187807075 (estimated locally),17.99 per call)
  109. Calls:
  110. vPortFree/45 (vPortFree) @05f36d20
  111. Type: function
  112. Visibility: external public
  113. References:
  114. Referring:
  115. Availability: not_available
  116. Function flags: optimize_size
  117. Called by: prvProcessReceivedCommands/27 (644244 (estimated locally),0.06 per call)
  118. Calls:
  119. vListInsert/44 (vListInsert) @05f369a0
  120. Type: function
  121. Visibility: external public
  122. References:
  123. Referring:
  124. Availability: not_available
  125. Function flags: optimize_size
  126. Called by: prvInsertTimerInActiveList/26 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (1073741824 (estimated locally),1.00 per call)
  127. Calls:
  128. uxListRemove/43 (uxListRemove) @05f36700
  129. Type: function
  130. Visibility: external public
  131. References:
  132. Referring:
  133. Availability: not_available
  134. Function flags: optimize_size
  135. Called by: prvProcessReceivedCommands/27 (5219353 (estimated locally),0.50 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call)
  136. Calls:
  137. xLastTime.6551/42 (xLastTime) @05f4c120
  138. Type: variable definition analyzed
  139. Visibility: prevailing_def_ironly
  140. References:
  141. Referring: prvSampleTimeNow/25 (read)prvSampleTimeNow/25 (write)
  142. Availability: available
  143. Varpool flags: initialized
  144. xTaskGetTickCount/41 (xTaskGetTickCount) @05f36380
  145. Type: function
  146. Visibility: external public
  147. References:
  148. Referring:
  149. Availability: not_available
  150. Function flags: optimize_size
  151. Called by: prvSampleTimeNow/25 (1073741824 (estimated locally),1.00 per call)
  152. Calls:
  153. vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05f361c0
  154. Type: function
  155. Visibility: external public
  156. References:
  157. Referring:
  158. Availability: not_available
  159. Function flags: optimize_size
  160. Called by: prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call)
  161. Calls:
  162. xTaskResumeAll/39 (xTaskResumeAll) @05f360e0
  163. Type: function
  164. Visibility: external public
  165. References:
  166. Referring:
  167. Availability: not_available
  168. Function flags: optimize_size
  169. Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),0.33 per call) prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call)
  170. Calls:
  171. vTaskSuspendAll/38 (vTaskSuspendAll) @05f36000
  172. Type: function
  173. Visibility: external public
  174. References:
  175. Referring:
  176. Availability: not_available
  177. Function flags: optimize_size
  178. Called by: prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call)
  179. Calls:
  180. xTaskCreate/37 (xTaskCreate) @05f2aee0
  181. Type: function
  182. Visibility: external public
  183. References:
  184. Referring:
  185. Availability: not_available
  186. Function flags: optimize_size
  187. Called by: xTimerCreateTimerTask/10 (78363 (estimated locally),0.53 per call)
  188. Calls:
  189. vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05f2aa80
  190. Type: function definition analyzed
  191. Visibility: externally_visible public
  192. References:
  193. Referring:
  194. Availability: available
  195. Function flags: count:1073741824 (estimated locally) body optimize_size
  196. Called by:
  197. Calls:
  198. uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05f2a7e0
  199. Type: function definition analyzed
  200. Visibility: externally_visible public
  201. References:
  202. Referring:
  203. Availability: available
  204. Function flags: count:1073741824 (estimated locally) body optimize_size
  205. Called by:
  206. Calls:
  207. xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05f2a540
  208. Type: function definition analyzed
  209. Visibility: externally_visible public
  210. References: xTimerQueue/8 (read)
  211. Referring:
  212. Availability: available
  213. Function flags: count:230763 (estimated locally) body optimize_size
  214. Called by:
  215. Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call)
  216. xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05f2a0e0
  217. Type: function definition analyzed
  218. Visibility: externally_visible public
  219. References: xTimerQueue/8 (read)
  220. Referring:
  221. Availability: available
  222. Function flags: count:1073741824 (estimated locally) body optimize_size
  223. Called by:
  224. Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call)
  225. vTimerSetTimerID/32 (vTimerSetTimerID) @05f268c0
  226. Type: function definition analyzed
  227. Visibility: externally_visible public
  228. References:
  229. Referring:
  230. Availability: available
  231. Function flags: count:230763 (estimated locally) body optimize_size
  232. Called by:
  233. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  234. pvTimerGetTimerID/31 (pvTimerGetTimerID) @05f26ee0
  235. Type: function definition analyzed
  236. Visibility: externally_visible public
  237. References:
  238. Referring:
  239. Availability: available
  240. Function flags: count:230763 (estimated locally) body optimize_size
  241. Called by:
  242. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  243. xTimerIsTimerActive/30 (xTimerIsTimerActive) @05f26b60
  244. Type: function definition analyzed
  245. Visibility: externally_visible public
  246. References:
  247. Referring:
  248. Availability: available
  249. Function flags: count:230763 (estimated locally) body optimize_size
  250. Called by:
  251. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  252. prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05f267e0
  253. Type: function definition analyzed
  254. Visibility: prevailing_def_ironly
  255. 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)
  256. Referring:
  257. Availability: local
  258. Function flags: count:1073741824 (estimated locally) body local optimize_size
  259. Called by: xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call) prvInitialiseNewTimer/12 (52886 (estimated locally),0.33 per call)
  260. 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)
  261. prvSwitchTimerLists/28 (prvSwitchTimerLists) @05f26460
  262. Type: function definition analyzed
  263. Visibility: prevailing_def_ironly
  264. References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write)
  265. Referring:
  266. Availability: local
  267. Function flags: count:118111600 (estimated locally) body local optimize_size
  268. Called by: prvSampleTimeNow/25 (354334802 (estimated locally),0.33 per call)
  269. Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call)
  270. prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05f260e0
  271. Type: function definition analyzed
  272. Visibility: prevailing_def_ironly
  273. References: xTimerQueue/8 (read)
  274. Referring:
  275. Availability: local
  276. Function flags: count:10436763 (estimated locally) body local optimize_size
  277. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  278. Calls: xQueueReceive/46 (187807075 (estimated locally),17.99 per call) vPortFree/45 (644244 (estimated locally),0.06 per call) prvInsertTimerInActiveList/26 (1844881 (estimated locally),0.18 per call) prvReloadTimer/20 (322122 (estimated locally),0.03 per call) prvInsertTimerInActiveList/26 (1952255 (estimated locally),0.19 per call) prvSampleTimeNow/25 (9761273 (estimated locally),0.94 per call) uxListRemove/43 (5219353 (estimated locally),0.50 per call)
  279. Indirect call(976127 (estimated locally),0.09 per call)
  280. Indirect call(72765851 (estimated locally),6.97 per call)
  281. prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05f1a7e0
  282. Type: function definition analyzed
  283. Visibility: prevailing_def_ironly
  284. References: pxCurrentTimerList/6 (read)
  285. Referring:
  286. Availability: local
  287. Function flags: count:1073741824 (estimated locally) body local optimize_size
  288. Called by: prvProcessReceivedCommands/27 (1844881 (estimated locally),0.18 per call) prvProcessReceivedCommands/27 (1952255 (estimated locally),0.19 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call)
  289. Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (177167400 (estimated locally),0.16 per call)
  290. prvSampleTimeNow/25 (prvSampleTimeNow) @05f1ad20
  291. Type: function definition analyzed
  292. Visibility: prevailing_def_ironly
  293. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  294. Referring:
  295. Availability: local
  296. Function flags: count:1073741824 (estimated locally) body local optimize_size
  297. Called by: prvProcessReceivedCommands/27 (9761273 (estimated locally),0.94 per call) prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call)
  298. Calls: prvSwitchTimerLists/28 (354334802 (estimated locally),0.33 per call) xTaskGetTickCount/41 (1073741824 (estimated locally),1.00 per call)
  299. prvGetNextExpireTime/24 (prvGetNextExpireTime) @05f1aa80
  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: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  307. Calls:
  308. prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05f1a700
  309. Type: function definition analyzed
  310. Visibility: prevailing_def_ironly
  311. References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read)
  312. Referring:
  313. Availability: local
  314. Function flags: count:1073741823 (estimated locally) body local optimize_size
  315. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  316. Calls: xTaskResumeAll/39 (354334802 (estimated locally),0.33 per call) xTaskResumeAll/39 (600704864 (estimated locally),0.56 per call) vQueueWaitForMessageRestricted/40 (600704864 (estimated locally),0.56 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),0.11 per call) xTaskResumeAll/39 (118702158 (estimated locally),0.11 per call) prvSampleTimeNow/25 (1073741823 (estimated locally),1.00 per call) vTaskSuspendAll/38 (1073741823 (estimated locally),1.00 per call)
  317. prvTimerTask/22 (prvTimerTask) @05f1a2a0
  318. Type: function definition analyzed
  319. Visibility: prevailing_def_ironly
  320. Address is taken.
  321. References:
  322. Referring: xTimerCreateTimerTask/10 (addr)
  323. Availability: available
  324. Function flags: count:107374 (estimated locally) body executed_once optimize_size
  325. Called by:
  326. Calls: prvProcessReceivedCommands/27 (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (1073741824 (estimated locally),10000.02 per call)
  327. prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05f1a000
  328. Type: function definition analyzed
  329. Visibility: prevailing_def_ironly
  330. References: pxCurrentTimerList/6 (read)
  331. Referring:
  332. Availability: local
  333. Function flags: count:1073741824 (estimated locally) body local optimize_size
  334. Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call)
  335. Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call)
  336. Indirect call(1073741824 (estimated locally),1.00 per call)
  337. prvReloadTimer/20 (prvReloadTimer) @05ec0540
  338. Type: function definition analyzed
  339. Visibility: prevailing_def_ironly
  340. References:
  341. Referring:
  342. Availability: local
  343. Function flags: count:118111600 (estimated locally) body local optimize_size
  344. Called by: prvProcessReceivedCommands/27 (322122 (estimated locally),0.03 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call)
  345. Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call)
  346. Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed)
  347. pcTimerGetName/19 (pcTimerGetName) @05ec0ee0
  348. Type: function definition analyzed
  349. Visibility: externally_visible public
  350. References:
  351. Referring:
  352. Availability: available
  353. Function flags: count:357913 (estimated locally) body optimize_size
  354. Called by:
  355. Calls:
  356. xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05ec0b60
  357. Type: function definition analyzed
  358. Visibility: externally_visible public
  359. References:
  360. Referring:
  361. Availability: available
  362. Function flags: count:357913 (estimated locally) body optimize_size
  363. Called by:
  364. Calls:
  365. uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05ec07e0
  366. Type: function definition analyzed
  367. Visibility: externally_visible public
  368. References:
  369. Referring:
  370. Availability: available
  371. Function flags: count:230763 (estimated locally) body optimize_size
  372. Called by:
  373. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  374. vTimerSetReloadMode/16 (vTimerSetReloadMode) @05ec0460
  375. Type: function definition analyzed
  376. Visibility: externally_visible public
  377. References:
  378. Referring:
  379. Availability: available
  380. Function flags: count:230763 (estimated locally) body optimize_size
  381. Called by:
  382. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  383. xTimerGetPeriod/15 (xTimerGetPeriod) @05ec00e0
  384. Type: function definition analyzed
  385. Visibility: externally_visible public
  386. References:
  387. Referring:
  388. Availability: available
  389. Function flags: count:357913 (estimated locally) body optimize_size
  390. Called by:
  391. Calls:
  392. xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05f157e0
  393. Type: function definition analyzed
  394. Visibility: externally_visible public
  395. References: xTimerTaskHandle/9 (read)
  396. Referring:
  397. Availability: available
  398. Function flags: count:357913 (estimated locally) body optimize_size
  399. Called by:
  400. Calls:
  401. xTimerGenericCommand/13 (xTimerGenericCommand) @05f151c0
  402. Type: function definition analyzed
  403. Visibility: externally_visible public
  404. References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read)
  405. Referring:
  406. Availability: available
  407. Function flags: count:357913 (estimated locally) body optimize_size
  408. Called by:
  409. 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)
  410. prvInitialiseNewTimer/12 (prvInitialiseNewTimer) @05f15a80
  411. Type: function definition analyzed
  412. Visibility: prevailing_def_ironly
  413. References:
  414. Referring:
  415. Availability: local
  416. Function flags: count:160260 (estimated locally) body local optimize_size
  417. Called by: xTimerCreate/11 (574129754 (estimated locally),0.53 per call)
  418. Calls: vListInitialiseItem/53 (52886 (estimated locally),0.33 per call) prvCheckForValidListAndQueue/29 (52886 (estimated locally),0.33 per call)
  419. xTimerCreate/11 (xTimerCreate) @05f15700
  420. Type: function definition analyzed
  421. Visibility: externally_visible public
  422. References:
  423. Referring:
  424. Availability: available
  425. Function flags: count:1073741824 (estimated locally) body optimize_size
  426. Called by:
  427. Calls: prvInitialiseNewTimer/12 (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call)
  428. xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05f15460
  429. Type: function definition analyzed
  430. Visibility: externally_visible public
  431. References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr)
  432. Referring:
  433. Availability: available
  434. Function flags: count:146556 (estimated locally) body optimize_size
  435. Called by:
  436. Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call)
  437. xTimerTaskHandle/9 (xTimerTaskHandle) @05f0f678
  438. Type: variable definition analyzed
  439. Visibility: prevailing_def_ironly
  440. References:
  441. Referring: xTimerCreateTimerTask/10 (addr)xTimerGetTimerDaemonTaskHandle/14 (read)
  442. Availability: available
  443. Varpool flags: initialized
  444. xTimerQueue/8 (xTimerQueue) @05f0f5e8
  445. Type: variable definition analyzed
  446. Visibility: prevailing_def_ironly
  447. References:
  448. Referring: prvProcessReceivedCommands/27 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCallFromISR/33 (read)prvCheckForValidListAndQueue/29 (write)xTimerCreateTimerTask/10 (read)prvCheckForValidListAndQueue/29 (read)prvProcessTimerOrBlockTask/23 (read)xTimerGenericCommand/13 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCall/34 (read)
  449. Availability: available
  450. Varpool flags: initialized
  451. pxOverflowTimerList/7 (pxOverflowTimerList) @05f0f558
  452. Type: variable definition analyzed
  453. Visibility: prevailing_def_ironly
  454. References:
  455. Referring: prvInsertTimerInActiveList.part.0/57 (read)prvSwitchTimerLists/28 (write)prvProcessTimerOrBlockTask/23 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write)
  456. Availability: available
  457. Varpool flags:
  458. pxCurrentTimerList/6 (pxCurrentTimerList) @05f0f4c8
  459. Type: variable definition analyzed
  460. Visibility: prevailing_def_ironly
  461. References:
  462. Referring: prvSwitchTimerLists/28 (write)prvProcessExpiredTimer/21 (read)prvInsertTimerInActiveList/26 (read)prvGetNextExpireTime/24 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write)
  463. Availability: available
  464. Varpool flags:
  465. xActiveTimerList2/5 (xActiveTimerList2) @05f0f438
  466. Type: variable definition analyzed
  467. Visibility: prevailing_def_ironly
  468. References:
  469. Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  470. Availability: available
  471. Varpool flags:
  472. xActiveTimerList1/4 (xActiveTimerList1) @05f0f3a8
  473. Type: variable definition analyzed
  474. Visibility: prevailing_def_ironly
  475. References:
  476. Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  477. Availability: available
  478. Varpool flags:
  479. prvInsertTimerInActiveList.part.0 (struct Timer_t * const pxTimer)
  480. {
  481. BaseType_t xProcessTimerNow;
  482. const TickType_t xNextExpiryTime;
  483. const TickType_t xTimeNow;
  484. const TickType_t xCommandTime;
  485. struct List_t * pxOverflowTimerList.14_1;
  486. struct ListItem_t * _3;
  487. <bb 4> [local count: 1073741824]:
  488. # DEBUG D#6 s=> xNextExpiryTime
  489. # DEBUG xNextExpiryTime => D#6
  490. # DEBUG D#5 s=> xTimeNow
  491. # DEBUG xTimeNow => D#5
  492. # DEBUG D#4 s=> xCommandTime
  493. # DEBUG xCommandTime => D#4
  494. <bb 2> [local count: 1073741824]:
  495. # DEBUG BEGIN_STMT
  496. pxOverflowTimerList.14_1 = pxOverflowTimerList;
  497. _3 = &pxTimer_2(D)->xTimerListItem;
  498. vListInsert (pxOverflowTimerList.14_1, _3);
  499. <bb 3> [local count: 1073741824]:
  500. # xProcessTimerNow_4 = PHI <0(2)>
  501. # DEBUG xProcessTimerNow => xProcessTimerNow_4
  502. # DEBUG BEGIN_STMT
  503. return xProcessTimerNow_4;
  504. }
  505. vTimerSetTimerNumber (struct tmrTimerControl * xTimer, UBaseType_t uxTimerNumber)
  506. {
  507. <bb 2> [local count: 1073741824]:
  508. # DEBUG BEGIN_STMT
  509. MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D);
  510. return;
  511. }
  512. uxTimerGetTimerNumber (struct tmrTimerControl * xTimer)
  513. {
  514. UBaseType_t _3;
  515. <bb 2> [local count: 1073741824]:
  516. # DEBUG BEGIN_STMT
  517. _3 = MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber;
  518. return _3;
  519. }
  520. xTimerPendFunctionCall (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait)
  521. {
  522. uint32_t ulNewBASEPRI;
  523. BaseType_t xReturn;
  524. struct DaemonTaskMessage_t xMessage;
  525. struct QueueDefinition * xTimerQueue.26_1;
  526. <bb 2> [local count: 230763]:
  527. # DEBUG BEGIN_STMT
  528. # DEBUG BEGIN_STMT
  529. # DEBUG BEGIN_STMT
  530. xTimerQueue.26_1 = xTimerQueue;
  531. if (xTimerQueue.26_1 == 0B)
  532. goto <bb 3>; [46.53%]
  533. else
  534. goto <bb 5>; [53.47%]
  535. <bb 3> [local count: 107374]:
  536. # DEBUG BEGIN_STMT
  537. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  538. # DEBUG BEGIN_STMT
  539. # DEBUG BEGIN_STMT
  540. __asm__ __volatile__(" mov %0, %1
  541. msr basepri, %0
  542. isb
  543. dsb
  544. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  545. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  546. <bb 4> [local count: 1073741824]:
  547. # DEBUG ulNewBASEPRI => NULL
  548. # DEBUG BEGIN_STMT
  549. # DEBUG BEGIN_STMT
  550. # DEBUG BEGIN_STMT
  551. <bb 6> [local count: 1073741824]:
  552. goto <bb 4>; [100.00%]
  553. <bb 5> [local count: 123389]:
  554. # DEBUG BEGIN_STMT
  555. # DEBUG BEGIN_STMT
  556. xMessage.xMessageID = -1;
  557. # DEBUG BEGIN_STMT
  558. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  559. # DEBUG BEGIN_STMT
  560. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  561. # DEBUG BEGIN_STMT
  562. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  563. # DEBUG BEGIN_STMT
  564. xReturn_12 = xQueueGenericSend (xTimerQueue.26_1, &xMessage, xTicksToWait_10(D), 0);
  565. # DEBUG xReturn => xReturn_12
  566. # DEBUG BEGIN_STMT
  567. # DEBUG BEGIN_STMT
  568. xMessage ={v} {CLOBBER};
  569. return xReturn_12;
  570. }
  571. xTimerPendFunctionCallFromISR (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, BaseType_t * pxHigherPriorityTaskWoken)
  572. {
  573. BaseType_t xReturn;
  574. struct DaemonTaskMessage_t xMessage;
  575. struct QueueDefinition * xTimerQueue.25_1;
  576. <bb 2> [local count: 1073741824]:
  577. # DEBUG BEGIN_STMT
  578. # DEBUG BEGIN_STMT
  579. # DEBUG BEGIN_STMT
  580. xMessage.xMessageID = -2;
  581. # DEBUG BEGIN_STMT
  582. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  583. # DEBUG BEGIN_STMT
  584. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  585. # DEBUG BEGIN_STMT
  586. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  587. # DEBUG BEGIN_STMT
  588. xTimerQueue.25_1 = xTimerQueue;
  589. xReturn_12 = xQueueGenericSendFromISR (xTimerQueue.25_1, &xMessage, pxHigherPriorityTaskWoken_10(D), 0);
  590. # DEBUG xReturn => xReturn_12
  591. # DEBUG BEGIN_STMT
  592. # DEBUG BEGIN_STMT
  593. xMessage ={v} {CLOBBER};
  594. return xReturn_12;
  595. }
  596. vTimerSetTimerID (struct tmrTimerControl * xTimer, void * pvNewID)
  597. {
  598. uint32_t ulNewBASEPRI;
  599. <bb 2> [local count: 230763]:
  600. # DEBUG BEGIN_STMT
  601. # DEBUG pxTimer => xTimer_1(D)
  602. # DEBUG BEGIN_STMT
  603. if (xTimer_1(D) == 0B)
  604. goto <bb 3>; [46.53%]
  605. else
  606. goto <bb 5>; [53.47%]
  607. <bb 3> [local count: 107374]:
  608. # DEBUG BEGIN_STMT
  609. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  610. # DEBUG BEGIN_STMT
  611. # DEBUG BEGIN_STMT
  612. __asm__ __volatile__(" mov %0, %1
  613. msr basepri, %0
  614. isb
  615. dsb
  616. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  617. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  618. <bb 4> [local count: 1073741824]:
  619. # DEBUG ulNewBASEPRI => NULL
  620. # DEBUG BEGIN_STMT
  621. # DEBUG BEGIN_STMT
  622. # DEBUG BEGIN_STMT
  623. <bb 6> [local count: 1073741824]:
  624. goto <bb 4>; [100.00%]
  625. <bb 5> [local count: 123389]:
  626. # DEBUG BEGIN_STMT
  627. # DEBUG BEGIN_STMT
  628. vPortEnterCritical ();
  629. # DEBUG BEGIN_STMT
  630. MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID = pvNewID_4(D);
  631. # DEBUG BEGIN_STMT
  632. vPortExitCritical ();
  633. return;
  634. }
  635. pvTimerGetTimerID (struct tmrTimerControl * const xTimer)
  636. {
  637. uint32_t ulNewBASEPRI;
  638. void * pvReturn;
  639. <bb 2> [local count: 230763]:
  640. # DEBUG BEGIN_STMT
  641. # DEBUG pxTimer => xTimer_1(D)
  642. # DEBUG BEGIN_STMT
  643. # DEBUG BEGIN_STMT
  644. if (xTimer_1(D) == 0B)
  645. goto <bb 3>; [46.53%]
  646. else
  647. goto <bb 5>; [53.47%]
  648. <bb 3> [local count: 107374]:
  649. # DEBUG BEGIN_STMT
  650. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  651. # DEBUG BEGIN_STMT
  652. # DEBUG BEGIN_STMT
  653. __asm__ __volatile__(" mov %0, %1
  654. msr basepri, %0
  655. isb
  656. dsb
  657. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  658. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  659. <bb 4> [local count: 1073741824]:
  660. # DEBUG ulNewBASEPRI => NULL
  661. # DEBUG BEGIN_STMT
  662. # DEBUG BEGIN_STMT
  663. # DEBUG BEGIN_STMT
  664. <bb 6> [local count: 1073741824]:
  665. goto <bb 4>; [100.00%]
  666. <bb 5> [local count: 123389]:
  667. # DEBUG BEGIN_STMT
  668. # DEBUG BEGIN_STMT
  669. vPortEnterCritical ();
  670. # DEBUG BEGIN_STMT
  671. pvReturn_4 = MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID;
  672. # DEBUG pvReturn => pvReturn_4
  673. # DEBUG BEGIN_STMT
  674. vPortExitCritical ();
  675. # DEBUG BEGIN_STMT
  676. return pvReturn_4;
  677. }
  678. xTimerIsTimerActive (struct tmrTimerControl * xTimer)
  679. {
  680. uint32_t ulNewBASEPRI;
  681. unsigned char _1;
  682. long int _2;
  683. unsigned char _4;
  684. <bb 2> [local count: 230763]:
  685. # DEBUG BEGIN_STMT
  686. # DEBUG BEGIN_STMT
  687. # DEBUG pxTimer => xTimer_3(D)
  688. # DEBUG BEGIN_STMT
  689. if (xTimer_3(D) == 0B)
  690. goto <bb 3>; [46.53%]
  691. else
  692. goto <bb 5>; [53.47%]
  693. <bb 3> [local count: 107374]:
  694. # DEBUG BEGIN_STMT
  695. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  696. # DEBUG BEGIN_STMT
  697. # DEBUG BEGIN_STMT
  698. __asm__ __volatile__(" mov %0, %1
  699. msr basepri, %0
  700. isb
  701. dsb
  702. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  703. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  704. <bb 4> [local count: 1073741824]:
  705. # DEBUG ulNewBASEPRI => NULL
  706. # DEBUG BEGIN_STMT
  707. # DEBUG BEGIN_STMT
  708. # DEBUG BEGIN_STMT
  709. <bb 6> [local count: 1073741824]:
  710. goto <bb 4>; [100.00%]
  711. <bb 5> [local count: 123389]:
  712. # DEBUG BEGIN_STMT
  713. # DEBUG BEGIN_STMT
  714. vPortEnterCritical ();
  715. # DEBUG BEGIN_STMT
  716. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  717. _4 = _1 & 1;
  718. _2 = (long int) _4;
  719. # DEBUG xReturn => _2
  720. # DEBUG BEGIN_STMT
  721. vPortExitCritical ();
  722. # DEBUG BEGIN_STMT
  723. return _2;
  724. }
  725. prvCheckForValidListAndQueue ()
  726. {
  727. struct QueueDefinition * xTimerQueue.17_1;
  728. struct QueueDefinition * _2;
  729. <bb 2> [local count: 1073741824]:
  730. # DEBUG BEGIN_STMT
  731. vPortEnterCritical ();
  732. # DEBUG BEGIN_STMT
  733. xTimerQueue.17_1 = xTimerQueue;
  734. if (xTimerQueue.17_1 == 0B)
  735. goto <bb 3>; [17.43%]
  736. else
  737. goto <bb 5>; [82.57%]
  738. <bb 3> [local count: 187153200]:
  739. # DEBUG BEGIN_STMT
  740. vListInitialise (&xActiveTimerList1);
  741. # DEBUG BEGIN_STMT
  742. vListInitialise (&xActiveTimerList2);
  743. # DEBUG BEGIN_STMT
  744. pxCurrentTimerList = &xActiveTimerList1;
  745. # DEBUG BEGIN_STMT
  746. pxOverflowTimerList = &xActiveTimerList2;
  747. # DEBUG BEGIN_STMT
  748. _2 = xQueueGenericCreate (10, 16, 0);
  749. xTimerQueue = _2;
  750. # DEBUG BEGIN_STMT
  751. if (_2 != 0B)
  752. goto <bb 4>; [53.47%]
  753. else
  754. goto <bb 5>; [46.53%]
  755. <bb 4> [local count: 100070816]:
  756. # DEBUG BEGIN_STMT
  757. vQueueAddToRegistry (_2, "TmrQ");
  758. <bb 5> [local count: 1073741824]:
  759. # DEBUG BEGIN_STMT
  760. # DEBUG BEGIN_STMT
  761. vPortExitCritical ();
  762. return;
  763. }
  764. prvSwitchTimerLists ()
  765. {
  766. TickType_t xNextExpireTime;
  767. struct xLIST_ITEM * _1;
  768. struct List_t * pxCurrentTimerList.11_2;
  769. long unsigned int _3;
  770. struct List_t * pxOverflowTimerList.12_4;
  771. struct List_t * pxCurrentTimerList.11_7;
  772. <bb 2> [local count: 118111600]:
  773. # DEBUG BEGIN_STMT
  774. # DEBUG BEGIN_STMT
  775. # DEBUG BEGIN_STMT
  776. goto <bb 4>; [100.00%]
  777. <bb 3> [local count: 955630223]:
  778. # DEBUG BEGIN_STMT
  779. _1 = pxCurrentTimerList.11_2->xListEnd.pxNext;
  780. xNextExpireTime_10 = _1->xItemValue;
  781. # DEBUG xNextExpireTime => xNextExpireTime_10
  782. # DEBUG BEGIN_STMT
  783. prvProcessExpiredTimer (xNextExpireTime_10, 4294967295);
  784. <bb 4> [local count: 1073741824]:
  785. # DEBUG BEGIN_STMT
  786. pxCurrentTimerList.11_2 = pxCurrentTimerList;
  787. _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems;
  788. if (_3 != 0)
  789. goto <bb 3>; [89.00%]
  790. else
  791. goto <bb 5>; [11.00%]
  792. <bb 5> [local count: 118111601]:
  793. # pxCurrentTimerList.11_7 = PHI <pxCurrentTimerList.11_2(4)>
  794. # DEBUG BEGIN_STMT
  795. # DEBUG pxTemp => pxCurrentTimerList.11_7
  796. # DEBUG BEGIN_STMT
  797. pxOverflowTimerList.12_4 = pxOverflowTimerList;
  798. pxCurrentTimerList = pxOverflowTimerList.12_4;
  799. # DEBUG BEGIN_STMT
  800. pxOverflowTimerList = pxCurrentTimerList.11_7;
  801. return;
  802. }
  803. prvProcessReceivedCommands ()
  804. {
  805. uint32_t ulNewBASEPRI;
  806. TickType_t xTimeNow;
  807. BaseType_t xTimerListsWereSwitched;
  808. struct Timer_t * pxTimer;
  809. struct DaemonTaskMessage_t xMessage;
  810. long int _1;
  811. void (*<T68e>) (void *, uint32_t) _2;
  812. void * _3;
  813. long unsigned int _4;
  814. long int _5;
  815. struct xLIST * _6;
  816. struct ListItem_t * _7;
  817. long int _8;
  818. unsigned char _9;
  819. unsigned char _10;
  820. long unsigned int _11;
  821. long unsigned int _12;
  822. long unsigned int _13;
  823. long int _15;
  824. unsigned char _16;
  825. long unsigned int _17;
  826. long unsigned int _18;
  827. long unsigned int _19;
  828. unsigned char _21;
  829. void (*<T689>) (struct tmrTimerControl *) _22;
  830. unsigned char _23;
  831. unsigned char _24;
  832. unsigned char _25;
  833. unsigned char _26;
  834. long unsigned int _27;
  835. long unsigned int _30;
  836. unsigned char _31;
  837. unsigned char _33;
  838. struct QueueDefinition * xTimerQueue.16_34;
  839. long int _35;
  840. unsigned char _63;
  841. unsigned char _65;
  842. <bb 2> [local count: 10436763]:
  843. # DEBUG BEGIN_STMT
  844. # DEBUG BEGIN_STMT
  845. # DEBUG BEGIN_STMT
  846. # DEBUG BEGIN_STMT
  847. # DEBUG BEGIN_STMT
  848. goto <bb 23>; [100.00%]
  849. <bb 3> [local count: 177477686]:
  850. # DEBUG BEGIN_STMT
  851. _1 = xMessage.xMessageID;
  852. if (_1 < 0)
  853. goto <bb 4>; [41.00%]
  854. else
  855. goto <bb 5>; [59.00%]
  856. <bb 4> [local count: 72765851]:
  857. # DEBUG BEGIN_STMT
  858. # DEBUG pxCallback => &xMessage.u.xCallbackParameters
  859. # DEBUG BEGIN_STMT
  860. # DEBUG BEGIN_STMT
  861. # DEBUG BEGIN_STMT
  862. _2 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pxCallbackFunction;
  863. _3 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pvParameter1;
  864. _4 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].ulParameter2;
  865. _2 (_3, _4);
  866. <bb 5> [local count: 177477686]:
  867. # DEBUG BEGIN_STMT
  868. # DEBUG BEGIN_STMT
  869. _5 = xMessage.xMessageID;
  870. if (_5 >= 0)
  871. goto <bb 6>; [5.50%]
  872. else
  873. goto <bb 29>; [94.50%]
  874. <bb 29> [local count: 167716413]:
  875. goto <bb 25>; [100.00%]
  876. <bb 6> [local count: 9761273]:
  877. # DEBUG BEGIN_STMT
  878. pxTimer_47 = xMessage.u.xTimerParameters.pxTimer;
  879. # DEBUG pxTimer => pxTimer_47
  880. # DEBUG BEGIN_STMT
  881. _6 = pxTimer_47->xTimerListItem.pvContainer;
  882. if (_6 != 0B)
  883. goto <bb 7>; [53.47%]
  884. else
  885. goto <bb 8>; [46.53%]
  886. <bb 7> [local count: 5219353]:
  887. # DEBUG BEGIN_STMT
  888. _7 = &pxTimer_47->xTimerListItem;
  889. uxListRemove (_7);
  890. <bb 8> [local count: 9761273]:
  891. # DEBUG BEGIN_STMT
  892. # DEBUG BEGIN_STMT
  893. # DEBUG BEGIN_STMT
  894. xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  895. # DEBUG xTimeNow => xTimeNow_50
  896. # DEBUG BEGIN_STMT
  897. _8 = xMessage.xMessageID;
  898. 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%]>
  899. <bb 28> [local count: 1952255]:
  900. <L41>:
  901. goto <bb 24>; [100.00%]
  902. <bb 9> [local count: 1952255]:
  903. # pxTimer_14 = PHI <pxTimer_47(8)>
  904. # xTimeNow_46 = PHI <xTimeNow_50(8)>
  905. <L11>:
  906. # DEBUG BEGIN_STMT
  907. _9 = pxTimer_14->ucStatus;
  908. _10 = _9 | 1;
  909. pxTimer_14->ucStatus = _10;
  910. # DEBUG BEGIN_STMT
  911. _11 = xMessage.u.xTimerParameters.xMessageValue;
  912. _12 = pxTimer_14->xTimerPeriodInTicks;
  913. _13 = _11 + _12;
  914. _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  915. if (_15 != 0)
  916. goto <bb 10>; [50.00%]
  917. else
  918. goto <bb 22>; [50.00%]
  919. <bb 10> [local count: 976127]:
  920. # DEBUG BEGIN_STMT
  921. _16 = pxTimer_14->ucStatus;
  922. _65 = _16 & 4;
  923. if (_65 != 0)
  924. goto <bb 11>; [33.00%]
  925. else
  926. goto <bb 12>; [67.00%]
  927. <bb 11> [local count: 322122]:
  928. # DEBUG BEGIN_STMT
  929. _17 = xMessage.u.xTimerParameters.xMessageValue;
  930. _18 = pxTimer_14->xTimerPeriodInTicks;
  931. _19 = _17 + _18;
  932. prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  933. goto <bb 13>; [100.00%]
  934. <bb 12> [local count: 654005]:
  935. # DEBUG BEGIN_STMT
  936. _21 = _16 & 254;
  937. pxTimer_14->ucStatus = _21;
  938. <bb 13> [local count: 976127]:
  939. # DEBUG BEGIN_STMT
  940. # DEBUG BEGIN_STMT
  941. _22 = pxTimer_14->pxCallbackFunction;
  942. _22 (pxTimer_14);
  943. goto <bb 22>; [100.00%]
  944. <bb 14> [local count: 1952255]:
  945. # pxTimer_20 = PHI <pxTimer_47(8)>
  946. <L21>:
  947. # DEBUG BEGIN_STMT
  948. _23 = pxTimer_20->ucStatus;
  949. _24 = _23 & 254;
  950. pxTimer_20->ucStatus = _24;
  951. # DEBUG BEGIN_STMT
  952. goto <bb 22>; [100.00%]
  953. <bb 15> [local count: 1952255]:
  954. # pxTimer_44 = PHI <pxTimer_47(8)>
  955. # xTimeNow_67 = PHI <xTimeNow_50(8)>
  956. <L23>:
  957. # DEBUG BEGIN_STMT
  958. _25 = pxTimer_44->ucStatus;
  959. _26 = _25 | 1;
  960. pxTimer_44->ucStatus = _26;
  961. # DEBUG BEGIN_STMT
  962. _27 = xMessage.u.xTimerParameters.xMessageValue;
  963. pxTimer_44->xTimerPeriodInTicks = _27;
  964. # DEBUG BEGIN_STMT
  965. if (_27 == 0)
  966. goto <bb 16>; [5.50%]
  967. else
  968. goto <bb 18>; [94.50%]
  969. <bb 16> [local count: 107374]:
  970. # DEBUG BEGIN_STMT
  971. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  972. # DEBUG BEGIN_STMT
  973. # DEBUG BEGIN_STMT
  974. __asm__ __volatile__(" mov %0, %1
  975. msr basepri, %0
  976. isb
  977. dsb
  978. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  979. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  980. <bb 17> [local count: 1073741824]:
  981. # DEBUG ulNewBASEPRI => NULL
  982. # DEBUG BEGIN_STMT
  983. # DEBUG BEGIN_STMT
  984. # DEBUG BEGIN_STMT
  985. <bb 27> [local count: 1073741824]:
  986. goto <bb 17>; [100.00%]
  987. <bb 18> [local count: 1844881]:
  988. # DEBUG BEGIN_STMT
  989. # DEBUG BEGIN_STMT
  990. _30 = _27 + xTimeNow_67;
  991. prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  992. # DEBUG BEGIN_STMT
  993. goto <bb 22>; [100.00%]
  994. <bb 19> [local count: 1952255]:
  995. # pxTimer_56 = PHI <pxTimer_47(8)>
  996. <L28>:
  997. # DEBUG BEGIN_STMT
  998. _31 = pxTimer_56->ucStatus;
  999. _63 = _31 & 2;
  1000. if (_63 == 0)
  1001. goto <bb 20>; [33.00%]
  1002. else
  1003. goto <bb 21>; [67.00%]
  1004. <bb 20> [local count: 644244]:
  1005. # DEBUG BEGIN_STMT
  1006. vPortFree (pxTimer_56);
  1007. goto <bb 22>; [100.00%]
  1008. <bb 21> [local count: 1308011]:
  1009. # DEBUG BEGIN_STMT
  1010. _33 = _31 & 254;
  1011. pxTimer_56->ucStatus = _33;
  1012. <bb 22> [local count: 7701644]:
  1013. <bb 23> [local count: 18138407]:
  1014. <bb 24> [local count: 20090662]:
  1015. <L38>:
  1016. <bb 25> [local count: 187807075]:
  1017. # DEBUG BEGIN_STMT
  1018. xTimerQueue.16_34 = xTimerQueue;
  1019. _35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  1020. if (_35 != 0)
  1021. goto <bb 3>; [94.50%]
  1022. else
  1023. goto <bb 26>; [5.50%]
  1024. <bb 26> [local count: 10329389]:
  1025. xMessage ={v} {CLOBBER};
  1026. xTimerListsWereSwitched ={v} {CLOBBER};
  1027. return;
  1028. }
  1029. prvInsertTimerInActiveList (struct Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime)
  1030. {
  1031. BaseType_t xProcessTimerNow;
  1032. long unsigned int _1;
  1033. long unsigned int _2;
  1034. struct List_t * pxCurrentTimerList.15_3;
  1035. struct ListItem_t * _4;
  1036. <bb 2> [local count: 1073741824]:
  1037. # DEBUG BEGIN_STMT
  1038. # DEBUG xProcessTimerNow => 0
  1039. # DEBUG BEGIN_STMT
  1040. pxTimer_8(D)->xTimerListItem.xItemValue = xNextExpiryTime_9(D);
  1041. # DEBUG BEGIN_STMT
  1042. pxTimer_8(D)->xTimerListItem.pvOwner = pxTimer_8(D);
  1043. # DEBUG BEGIN_STMT
  1044. if (xNextExpiryTime_9(D) <= xTimeNow_12(D))
  1045. goto <bb 3>; [50.00%]
  1046. else
  1047. goto <bb 5>; [50.00%]
  1048. <bb 3> [local count: 536870913]:
  1049. # DEBUG BEGIN_STMT
  1050. _1 = xTimeNow_12(D) - xCommandTime_13(D);
  1051. _2 = pxTimer_8(D)->xTimerPeriodInTicks;
  1052. if (_1 >= _2)
  1053. goto <bb 8>; [67.00%]
  1054. else
  1055. goto <bb 4>; [33.00%]
  1056. <bb 4> [local count: 177167400]:
  1057. # DEBUG D#1 => xNextExpiryTime_9(D)
  1058. # DEBUG D#2 => xTimeNow_12(D)
  1059. # DEBUG D#3 => xCommandTime_13(D)
  1060. xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D));
  1061. goto <bb 8>; [100.00%]
  1062. <bb 5> [local count: 536870913]:
  1063. # DEBUG BEGIN_STMT
  1064. if (xTimeNow_12(D) < xCommandTime_13(D))
  1065. goto <bb 6>; [67.00%]
  1066. else
  1067. goto <bb 7>; [33.00%]
  1068. <bb 6> [local count: 359703511]:
  1069. if (xNextExpiryTime_9(D) >= xCommandTime_13(D))
  1070. goto <bb 8>; [50.00%]
  1071. else
  1072. goto <bb 7>; [50.00%]
  1073. <bb 7> [local count: 357019157]:
  1074. # DEBUG BEGIN_STMT
  1075. pxCurrentTimerList.15_3 = pxCurrentTimerList;
  1076. _4 = &pxTimer_8(D)->xTimerListItem;
  1077. vListInsert (pxCurrentTimerList.15_3, _4);
  1078. <bb 8> [local count: 1073741824]:
  1079. # xProcessTimerNow_5 = PHI <xProcessTimerNow_16(4), 1(6), 0(7), 1(3)>
  1080. # DEBUG xProcessTimerNow => xProcessTimerNow_5
  1081. # DEBUG BEGIN_STMT
  1082. return xProcessTimerNow_5;
  1083. }
  1084. prvSampleTimeNow (BaseType_t * const pxTimerListsWereSwitched)
  1085. {
  1086. static TickType_t xLastTime = 0;
  1087. TickType_t xTimeNow;
  1088. long unsigned int xLastTime.9_1;
  1089. <bb 2> [local count: 1073741824]:
  1090. # DEBUG BEGIN_STMT
  1091. # DEBUG BEGIN_STMT
  1092. # DEBUG BEGIN_STMT
  1093. xTimeNow_5 = xTaskGetTickCount ();
  1094. # DEBUG xTimeNow => xTimeNow_5
  1095. # DEBUG BEGIN_STMT
  1096. xLastTime.9_1 = xLastTime;
  1097. if (xLastTime.9_1 > xTimeNow_5)
  1098. goto <bb 3>; [33.00%]
  1099. else
  1100. goto <bb 4>; [67.00%]
  1101. <bb 3> [local count: 354334802]:
  1102. # DEBUG BEGIN_STMT
  1103. prvSwitchTimerLists ();
  1104. # DEBUG BEGIN_STMT
  1105. *pxTimerListsWereSwitched_6(D) = 1;
  1106. goto <bb 5>; [100.00%]
  1107. <bb 4> [local count: 719407023]:
  1108. # DEBUG BEGIN_STMT
  1109. *pxTimerListsWereSwitched_6(D) = 0;
  1110. <bb 5> [local count: 1073741824]:
  1111. # DEBUG BEGIN_STMT
  1112. xLastTime = xTimeNow_5;
  1113. # DEBUG BEGIN_STMT
  1114. return xTimeNow_5;
  1115. }
  1116. prvGetNextExpireTime (BaseType_t * const pxListWasEmpty)
  1117. {
  1118. TickType_t xNextExpireTime;
  1119. struct List_t * pxCurrentTimerList.3_1;
  1120. long unsigned int _2;
  1121. struct xLIST_ITEM * _3;
  1122. long int iftmp.2_5;
  1123. <bb 2> [local count: 1073741824]:
  1124. # DEBUG BEGIN_STMT
  1125. # DEBUG BEGIN_STMT
  1126. pxCurrentTimerList.3_1 = pxCurrentTimerList;
  1127. _2 ={v} pxCurrentTimerList.3_1->uxNumberOfItems;
  1128. if (_2 == 0)
  1129. goto <bb 4>; [50.00%]
  1130. else
  1131. goto <bb 3>; [50.00%]
  1132. <bb 3> [local count: 536870913]:
  1133. <bb 4> [local count: 1073741824]:
  1134. # iftmp.2_5 = PHI <1(2), 0(3)>
  1135. *pxListWasEmpty_7(D) = iftmp.2_5;
  1136. # DEBUG BEGIN_STMT
  1137. if (iftmp.2_5 == 0)
  1138. goto <bb 5>; [50.00%]
  1139. else
  1140. goto <bb 6>; [50.00%]
  1141. <bb 5> [local count: 536870913]:
  1142. # DEBUG BEGIN_STMT
  1143. _3 = pxCurrentTimerList.3_1->xListEnd.pxNext;
  1144. xNextExpireTime_9 = _3->xItemValue;
  1145. # DEBUG xNextExpireTime => xNextExpireTime_9
  1146. <bb 6> [local count: 1073741824]:
  1147. # xNextExpireTime_4 = PHI <xNextExpireTime_9(5), 0(4)>
  1148. # DEBUG xNextExpireTime => xNextExpireTime_4
  1149. # DEBUG BEGIN_STMT
  1150. return xNextExpireTime_4;
  1151. }
  1152. prvProcessTimerOrBlockTask (const TickType_t xNextExpireTime, BaseType_t xListWasEmpty)
  1153. {
  1154. BaseType_t xTimerListsWereSwitched;
  1155. TickType_t xTimeNow;
  1156. long int xTimerListsWereSwitched.5_1;
  1157. struct List_t * pxOverflowTimerList.7_2;
  1158. long unsigned int _3;
  1159. struct QueueDefinition * xTimerQueue.8_4;
  1160. long unsigned int _5;
  1161. long int _6;
  1162. <bb 2> [local count: 1073741823]:
  1163. # DEBUG BEGIN_STMT
  1164. # DEBUG BEGIN_STMT
  1165. # DEBUG BEGIN_STMT
  1166. vTaskSuspendAll ();
  1167. # DEBUG BEGIN_STMT
  1168. xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched);
  1169. # DEBUG xTimeNow => xTimeNow_12
  1170. # DEBUG BEGIN_STMT
  1171. xTimerListsWereSwitched.5_1 = xTimerListsWereSwitched;
  1172. if (xTimerListsWereSwitched.5_1 == 0)
  1173. goto <bb 3>; [67.00%]
  1174. else
  1175. goto <bb 12>; [33.00%]
  1176. <bb 3> [local count: 719407022]:
  1177. # DEBUG BEGIN_STMT
  1178. if (xListWasEmpty_14(D) == 0)
  1179. goto <bb 4>; [50.00%]
  1180. else
  1181. goto <bb 6>; [50.00%]
  1182. <bb 4> [local count: 359703511]:
  1183. if (xTimeNow_12 >= xNextExpireTime_15(D))
  1184. goto <bb 5>; [33.00%]
  1185. else
  1186. goto <bb 6>; [67.00%]
  1187. <bb 5> [local count: 118702158]:
  1188. # DEBUG BEGIN_STMT
  1189. xTaskResumeAll ();
  1190. # DEBUG BEGIN_STMT
  1191. prvProcessExpiredTimer (xNextExpireTime_15(D), xTimeNow_12);
  1192. goto <bb 13>; [100.00%]
  1193. <bb 6> [local count: 600704864]:
  1194. # DEBUG BEGIN_STMT
  1195. if (xListWasEmpty_14(D) != 0)
  1196. goto <bb 7>; [50.00%]
  1197. else
  1198. goto <bb 10>; [50.00%]
  1199. <bb 7> [local count: 300352432]:
  1200. # DEBUG BEGIN_STMT
  1201. pxOverflowTimerList.7_2 = pxOverflowTimerList;
  1202. _3 ={v} pxOverflowTimerList.7_2->uxNumberOfItems;
  1203. if (_3 == 0)
  1204. goto <bb 10>; [50.00%]
  1205. else
  1206. goto <bb 8>; [50.00%]
  1207. <bb 8> [local count: 150176216]:
  1208. <bb 10> [local count: 600704864]:
  1209. # xListWasEmpty_7 = PHI <xListWasEmpty_14(D)(6), 0(8), 1(7)>
  1210. # DEBUG xListWasEmpty => xListWasEmpty_7
  1211. # DEBUG BEGIN_STMT
  1212. xTimerQueue.8_4 = xTimerQueue;
  1213. _5 = xNextExpireTime_15(D) - xTimeNow_12;
  1214. vQueueWaitForMessageRestricted (xTimerQueue.8_4, _5, xListWasEmpty_7);
  1215. # DEBUG BEGIN_STMT
  1216. _6 = xTaskResumeAll ();
  1217. if (_6 == 0)
  1218. goto <bb 11>; [50.00%]
  1219. else
  1220. goto <bb 13>; [50.00%]
  1221. <bb 11> [local count: 300352432]:
  1222. # DEBUG BEGIN_STMT
  1223. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1224. # DEBUG BEGIN_STMT
  1225. __asm__ __volatile__("dsb" : : : "memory");
  1226. # DEBUG BEGIN_STMT
  1227. __asm__ __volatile__("isb");
  1228. # DEBUG BEGIN_STMT
  1229. goto <bb 13>; [100.00%]
  1230. <bb 12> [local count: 354334802]:
  1231. # DEBUG BEGIN_STMT
  1232. xTaskResumeAll ();
  1233. <bb 13> [local count: 1073741824]:
  1234. xTimerListsWereSwitched ={v} {CLOBBER};
  1235. return;
  1236. }
  1237. prvTimerTask (void * pvParameters)
  1238. {
  1239. BaseType_t xListWasEmpty;
  1240. TickType_t xNextExpireTime;
  1241. long int xListWasEmpty.1_1;
  1242. <bb 2> [local count: 107374]:
  1243. <bb 3> [local count: 1073741824]:
  1244. # DEBUG BEGIN_STMT
  1245. # DEBUG BEGIN_STMT
  1246. # DEBUG BEGIN_STMT
  1247. # DEBUG BEGIN_STMT
  1248. # DEBUG BEGIN_STMT
  1249. xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  1250. # DEBUG xNextExpireTime => xNextExpireTime_5
  1251. # DEBUG BEGIN_STMT
  1252. xListWasEmpty.1_1 = xListWasEmpty;
  1253. prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1);
  1254. # DEBUG BEGIN_STMT
  1255. prvProcessReceivedCommands ();
  1256. # DEBUG BEGIN_STMT
  1257. <bb 4> [local count: 1073741824]:
  1258. goto <bb 3>; [100.00%]
  1259. }
  1260. prvProcessExpiredTimer (const TickType_t xNextExpireTime, const TickType_t xTimeNow)
  1261. {
  1262. struct Timer_t * const pxTimer;
  1263. struct List_t * pxCurrentTimerList.13_1;
  1264. struct xLIST_ITEM * _2;
  1265. struct ListItem_t * _3;
  1266. unsigned char _4;
  1267. unsigned char _5;
  1268. void (*<T689>) (struct tmrTimerControl *) _6;
  1269. unsigned char _16;
  1270. <bb 2> [local count: 1073741824]:
  1271. # DEBUG BEGIN_STMT
  1272. pxCurrentTimerList.13_1 = pxCurrentTimerList;
  1273. _2 = pxCurrentTimerList.13_1->xListEnd.pxNext;
  1274. pxTimer_9 = _2->pvOwner;
  1275. # DEBUG pxTimer => pxTimer_9
  1276. # DEBUG BEGIN_STMT
  1277. _3 = &pxTimer_9->xTimerListItem;
  1278. uxListRemove (_3);
  1279. # DEBUG BEGIN_STMT
  1280. _4 = pxTimer_9->ucStatus;
  1281. _16 = _4 & 4;
  1282. if (_16 != 0)
  1283. goto <bb 3>; [33.00%]
  1284. else
  1285. goto <bb 4>; [67.00%]
  1286. <bb 3> [local count: 354334802]:
  1287. # DEBUG BEGIN_STMT
  1288. prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  1289. goto <bb 5>; [100.00%]
  1290. <bb 4> [local count: 719407023]:
  1291. # DEBUG BEGIN_STMT
  1292. _5 = _4 & 254;
  1293. pxTimer_9->ucStatus = _5;
  1294. <bb 5> [local count: 1073741824]:
  1295. # DEBUG BEGIN_STMT
  1296. # DEBUG BEGIN_STMT
  1297. _6 = pxTimer_9->pxCallbackFunction;
  1298. _6 (pxTimer_9);
  1299. return;
  1300. }
  1301. prvReloadTimer (struct Timer_t * const pxTimer, TickType_t xExpiredTime, const TickType_t xTimeNow)
  1302. {
  1303. long unsigned int _1;
  1304. void (*<T689>) (struct tmrTimerControl *) _2;
  1305. long unsigned int _3;
  1306. long unsigned int _4;
  1307. long int _5;
  1308. <bb 2> [local count: 118111600]:
  1309. # DEBUG BEGIN_STMT
  1310. goto <bb 4>; [100.00%]
  1311. <bb 3> [local count: 955630223]:
  1312. # DEBUG BEGIN_STMT
  1313. _1 = pxTimer_10(D)->xTimerPeriodInTicks;
  1314. xExpiredTime_13 = _1 + xExpiredTime_6;
  1315. # DEBUG xExpiredTime => xExpiredTime_13
  1316. # DEBUG BEGIN_STMT
  1317. # DEBUG BEGIN_STMT
  1318. _2 = pxTimer_10(D)->pxCallbackFunction;
  1319. _2 (pxTimer_10(D));
  1320. <bb 4> [local count: 1073741824]:
  1321. # xExpiredTime_6 = PHI <xExpiredTime_8(D)(2), xExpiredTime_13(3)>
  1322. # DEBUG xExpiredTime => xExpiredTime_6
  1323. # DEBUG BEGIN_STMT
  1324. _3 = pxTimer_10(D)->xTimerPeriodInTicks;
  1325. _4 = _3 + xExpiredTime_6;
  1326. _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  1327. if (_5 != 0)
  1328. goto <bb 3>; [89.00%]
  1329. else
  1330. goto <bb 5>; [11.00%]
  1331. <bb 5> [local count: 118111601]:
  1332. return;
  1333. }
  1334. pcTimerGetName (struct tmrTimerControl * xTimer)
  1335. {
  1336. uint32_t ulNewBASEPRI;
  1337. const char * _3;
  1338. <bb 2> [local count: 357913]:
  1339. # DEBUG BEGIN_STMT
  1340. # DEBUG pxTimer => xTimer_1(D)
  1341. # DEBUG BEGIN_STMT
  1342. if (xTimer_1(D) == 0B)
  1343. goto <bb 3>; [30.00%]
  1344. else
  1345. goto <bb 5>; [70.00%]
  1346. <bb 3> [local count: 107374]:
  1347. # DEBUG BEGIN_STMT
  1348. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1349. # DEBUG BEGIN_STMT
  1350. # DEBUG BEGIN_STMT
  1351. __asm__ __volatile__(" mov %0, %1
  1352. msr basepri, %0
  1353. isb
  1354. dsb
  1355. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1356. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1357. <bb 4> [local count: 1073741824]:
  1358. # DEBUG ulNewBASEPRI => NULL
  1359. # DEBUG BEGIN_STMT
  1360. # DEBUG BEGIN_STMT
  1361. # DEBUG BEGIN_STMT
  1362. <bb 6> [local count: 1073741824]:
  1363. goto <bb 4>; [100.00%]
  1364. <bb 5> [local count: 250539]:
  1365. # DEBUG BEGIN_STMT
  1366. # DEBUG BEGIN_STMT
  1367. _3 = MEM[(struct Timer_t *)xTimer_1(D)].pcTimerName;
  1368. return _3;
  1369. }
  1370. xTimerGetExpiryTime (struct tmrTimerControl * xTimer)
  1371. {
  1372. uint32_t ulNewBASEPRI;
  1373. TickType_t xReturn;
  1374. <bb 2> [local count: 357913]:
  1375. # DEBUG BEGIN_STMT
  1376. # DEBUG pxTimer => xTimer_1(D)
  1377. # DEBUG BEGIN_STMT
  1378. # DEBUG BEGIN_STMT
  1379. if (xTimer_1(D) == 0B)
  1380. goto <bb 3>; [30.00%]
  1381. else
  1382. goto <bb 5>; [70.00%]
  1383. <bb 3> [local count: 107374]:
  1384. # DEBUG BEGIN_STMT
  1385. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1386. # DEBUG BEGIN_STMT
  1387. # DEBUG BEGIN_STMT
  1388. __asm__ __volatile__(" mov %0, %1
  1389. msr basepri, %0
  1390. isb
  1391. dsb
  1392. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1393. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1394. <bb 4> [local count: 1073741824]:
  1395. # DEBUG ulNewBASEPRI => NULL
  1396. # DEBUG BEGIN_STMT
  1397. # DEBUG BEGIN_STMT
  1398. # DEBUG BEGIN_STMT
  1399. <bb 6> [local count: 1073741824]:
  1400. goto <bb 4>; [100.00%]
  1401. <bb 5> [local count: 250539]:
  1402. # DEBUG BEGIN_STMT
  1403. # DEBUG BEGIN_STMT
  1404. xReturn_3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerListItem.xItemValue;
  1405. # DEBUG xReturn => xReturn_3
  1406. # DEBUG BEGIN_STMT
  1407. return xReturn_3;
  1408. }
  1409. uxTimerGetReloadMode (struct tmrTimerControl * xTimer)
  1410. {
  1411. uint32_t ulNewBASEPRI;
  1412. UBaseType_t uxReturn;
  1413. unsigned char _1;
  1414. unsigned char _4;
  1415. <bb 2> [local count: 230763]:
  1416. # DEBUG BEGIN_STMT
  1417. # DEBUG pxTimer => xTimer_3(D)
  1418. # DEBUG BEGIN_STMT
  1419. # DEBUG BEGIN_STMT
  1420. if (xTimer_3(D) == 0B)
  1421. goto <bb 3>; [46.53%]
  1422. else
  1423. goto <bb 5>; [53.47%]
  1424. <bb 3> [local count: 107374]:
  1425. # DEBUG BEGIN_STMT
  1426. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1427. # DEBUG BEGIN_STMT
  1428. # DEBUG BEGIN_STMT
  1429. __asm__ __volatile__(" mov %0, %1
  1430. msr basepri, %0
  1431. isb
  1432. dsb
  1433. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1434. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1435. <bb 4> [local count: 1073741824]:
  1436. # DEBUG ulNewBASEPRI => NULL
  1437. # DEBUG BEGIN_STMT
  1438. # DEBUG BEGIN_STMT
  1439. # DEBUG BEGIN_STMT
  1440. <bb 8> [local count: 1073741824]:
  1441. goto <bb 4>; [100.00%]
  1442. <bb 5> [local count: 123389]:
  1443. # DEBUG BEGIN_STMT
  1444. # DEBUG BEGIN_STMT
  1445. vPortEnterCritical ();
  1446. # DEBUG BEGIN_STMT
  1447. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  1448. _4 = _1 & 4;
  1449. if (_4 == 0)
  1450. goto <bb 7>; [50.00%]
  1451. else
  1452. goto <bb 6>; [50.00%]
  1453. <bb 6> [local count: 61694]:
  1454. # DEBUG BEGIN_STMT
  1455. # DEBUG uxReturn => 1
  1456. <bb 7> [local count: 123389]:
  1457. # uxReturn_2 = PHI <0(5), 1(6)>
  1458. # DEBUG uxReturn => uxReturn_2
  1459. # DEBUG BEGIN_STMT
  1460. vPortExitCritical ();
  1461. # DEBUG BEGIN_STMT
  1462. return uxReturn_2;
  1463. }
  1464. vTimerSetReloadMode (struct tmrTimerControl * xTimer, const UBaseType_t uxAutoReload)
  1465. {
  1466. uint32_t ulNewBASEPRI;
  1467. unsigned char _1;
  1468. unsigned char _2;
  1469. unsigned char _3;
  1470. unsigned char _4;
  1471. <bb 2> [local count: 230763]:
  1472. # DEBUG BEGIN_STMT
  1473. # DEBUG pxTimer => xTimer_6(D)
  1474. # DEBUG BEGIN_STMT
  1475. if (xTimer_6(D) == 0B)
  1476. goto <bb 3>; [46.53%]
  1477. else
  1478. goto <bb 5>; [53.47%]
  1479. <bb 3> [local count: 107374]:
  1480. # DEBUG BEGIN_STMT
  1481. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1482. # DEBUG BEGIN_STMT
  1483. # DEBUG BEGIN_STMT
  1484. __asm__ __volatile__(" mov %0, %1
  1485. msr basepri, %0
  1486. isb
  1487. dsb
  1488. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  1489. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  1490. <bb 4> [local count: 1073741824]:
  1491. # DEBUG ulNewBASEPRI => NULL
  1492. # DEBUG BEGIN_STMT
  1493. # DEBUG BEGIN_STMT
  1494. # DEBUG BEGIN_STMT
  1495. <bb 9> [local count: 1073741824]:
  1496. goto <bb 4>; [100.00%]
  1497. <bb 5> [local count: 123389]:
  1498. # DEBUG BEGIN_STMT
  1499. # DEBUG BEGIN_STMT
  1500. vPortEnterCritical ();
  1501. # DEBUG BEGIN_STMT
  1502. if (uxAutoReload_9(D) != 0)
  1503. goto <bb 6>; [50.00%]
  1504. else
  1505. goto <bb 7>; [50.00%]
  1506. <bb 6> [local count: 61694]:
  1507. # DEBUG BEGIN_STMT
  1508. _1 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  1509. _2 = _1 | 4;
  1510. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _2;
  1511. goto <bb 8>; [100.00%]
  1512. <bb 7> [local count: 61694]:
  1513. # DEBUG BEGIN_STMT
  1514. _3 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  1515. _4 = _3 & 251;
  1516. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _4;
  1517. <bb 8> [local count: 123389]:
  1518. # DEBUG BEGIN_STMT
  1519. vPortExitCritical ();
  1520. return;
  1521. }
  1522. xTimerGetPeriod (struct tmrTimerControl * xTimer)
  1523. {
  1524. uint32_t ulNewBASEPRI;
  1525. TickType_t _3;
  1526. <bb 2> [local count: 357913]:
  1527. # DEBUG BEGIN_STMT
  1528. # DEBUG pxTimer => xTimer_1(D)
  1529. # DEBUG BEGIN_STMT
  1530. if (xTimer_1(D) == 0B)
  1531. goto <bb 3>; [30.00%]
  1532. else
  1533. goto <bb 5>; [70.00%]
  1534. <bb 3> [local count: 107374]:
  1535. # DEBUG BEGIN_STMT
  1536. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1537. # DEBUG BEGIN_STMT
  1538. # DEBUG BEGIN_STMT
  1539. __asm__ __volatile__(" mov %0, %1
  1540. msr basepri, %0
  1541. isb
  1542. dsb
  1543. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  1544. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  1545. <bb 4> [local count: 1073741824]:
  1546. # DEBUG ulNewBASEPRI => NULL
  1547. # DEBUG BEGIN_STMT
  1548. # DEBUG BEGIN_STMT
  1549. # DEBUG BEGIN_STMT
  1550. <bb 6> [local count: 1073741824]:
  1551. goto <bb 4>; [100.00%]
  1552. <bb 5> [local count: 250539]:
  1553. # DEBUG BEGIN_STMT
  1554. # DEBUG BEGIN_STMT
  1555. _3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerPeriodInTicks;
  1556. return _3;
  1557. }
  1558. xTimerGetTimerDaemonTaskHandle ()
  1559. {
  1560. uint32_t ulNewBASEPRI;
  1561. struct tskTaskControlBlock * xTimerTaskHandle.24_1;
  1562. <bb 2> [local count: 357913]:
  1563. # DEBUG BEGIN_STMT
  1564. xTimerTaskHandle.24_1 = xTimerTaskHandle;
  1565. if (xTimerTaskHandle.24_1 == 0B)
  1566. goto <bb 3>; [30.00%]
  1567. else
  1568. goto <bb 5>; [70.00%]
  1569. <bb 3> [local count: 107374]:
  1570. # DEBUG BEGIN_STMT
  1571. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1572. # DEBUG BEGIN_STMT
  1573. # DEBUG BEGIN_STMT
  1574. __asm__ __volatile__(" mov %0, %1
  1575. msr basepri, %0
  1576. isb
  1577. dsb
  1578. " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory");
  1579. # DEBUG ulNewBASEPRI => ulNewBASEPRI_3
  1580. <bb 4> [local count: 1073741824]:
  1581. # DEBUG ulNewBASEPRI => NULL
  1582. # DEBUG BEGIN_STMT
  1583. # DEBUG BEGIN_STMT
  1584. # DEBUG BEGIN_STMT
  1585. <bb 6> [local count: 1073741824]:
  1586. goto <bb 4>; [100.00%]
  1587. <bb 5> [local count: 250539]:
  1588. # DEBUG BEGIN_STMT
  1589. # DEBUG BEGIN_STMT
  1590. return xTimerTaskHandle.24_1;
  1591. }
  1592. xTimerGenericCommand (struct tmrTimerControl * xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait)
  1593. {
  1594. uint32_t ulNewBASEPRI;
  1595. struct DaemonTaskMessage_t xMessage;
  1596. BaseType_t xReturn;
  1597. struct QueueDefinition * xTimerQueue.20_1;
  1598. long int _2;
  1599. struct QueueDefinition * xTimerQueue.21_3;
  1600. struct QueueDefinition * xTimerQueue.22_4;
  1601. <bb 2> [local count: 357913]:
  1602. # DEBUG BEGIN_STMT
  1603. # DEBUG xReturn => 0
  1604. # DEBUG BEGIN_STMT
  1605. # DEBUG BEGIN_STMT
  1606. if (xTimer_7(D) == 0B)
  1607. goto <bb 3>; [30.00%]
  1608. else
  1609. goto <bb 5>; [70.00%]
  1610. <bb 3> [local count: 107374]:
  1611. # DEBUG BEGIN_STMT
  1612. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1613. # DEBUG BEGIN_STMT
  1614. # DEBUG BEGIN_STMT
  1615. __asm__ __volatile__(" mov %0, %1
  1616. msr basepri, %0
  1617. isb
  1618. dsb
  1619. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  1620. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  1621. <bb 4> [local count: 1073741824]:
  1622. # DEBUG ulNewBASEPRI => NULL
  1623. # DEBUG BEGIN_STMT
  1624. # DEBUG BEGIN_STMT
  1625. # DEBUG BEGIN_STMT
  1626. <bb 12> [local count: 1073741824]:
  1627. goto <bb 4>; [100.00%]
  1628. <bb 5> [local count: 250539]:
  1629. # DEBUG BEGIN_STMT
  1630. # DEBUG BEGIN_STMT
  1631. xTimerQueue.20_1 = xTimerQueue;
  1632. if (xTimerQueue.20_1 != 0B)
  1633. goto <bb 6>; [70.00%]
  1634. else
  1635. goto <bb 11>; [30.00%]
  1636. <bb 6> [local count: 175378]:
  1637. # DEBUG BEGIN_STMT
  1638. xMessage.xMessageID = xCommandID_9(D);
  1639. # DEBUG BEGIN_STMT
  1640. xMessage.u.xTimerParameters.xMessageValue = xOptionalValue_11(D);
  1641. # DEBUG BEGIN_STMT
  1642. xMessage.u.xTimerParameters.pxTimer = xTimer_7(D);
  1643. # DEBUG BEGIN_STMT
  1644. if (xCommandID_9(D) <= 5)
  1645. goto <bb 7>; [50.00%]
  1646. else
  1647. goto <bb 10>; [50.00%]
  1648. <bb 7> [local count: 87689]:
  1649. # DEBUG BEGIN_STMT
  1650. _2 = xTaskGetSchedulerState ();
  1651. if (_2 == 2)
  1652. goto <bb 8>; [34.00%]
  1653. else
  1654. goto <bb 9>; [66.00%]
  1655. <bb 8> [local count: 29814]:
  1656. # DEBUG BEGIN_STMT
  1657. xTimerQueue.21_3 = xTimerQueue;
  1658. xReturn_22 = xQueueGenericSend (xTimerQueue.21_3, &xMessage, xTicksToWait_20(D), 0);
  1659. # DEBUG xReturn => xReturn_22
  1660. goto <bb 11>; [100.00%]
  1661. <bb 9> [local count: 57875]:
  1662. # DEBUG BEGIN_STMT
  1663. xTimerQueue.22_4 = xTimerQueue;
  1664. xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0);
  1665. # DEBUG xReturn => xReturn_19
  1666. goto <bb 11>; [100.00%]
  1667. <bb 10> [local count: 87689]:
  1668. # DEBUG BEGIN_STMT
  1669. xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0);
  1670. # DEBUG xReturn => xReturn_16
  1671. <bb 11> [local count: 250539]:
  1672. # xReturn_5 = PHI <0(5), xReturn_16(10), xReturn_19(9), xReturn_22(8)>
  1673. # DEBUG xReturn => xReturn_5
  1674. # DEBUG BEGIN_STMT
  1675. # DEBUG BEGIN_STMT
  1676. xMessage ={v} {CLOBBER};
  1677. return xReturn_5;
  1678. }
  1679. prvInitialiseNewTimer (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction, struct Timer_t * pxNewTimer)
  1680. {
  1681. uint32_t ulNewBASEPRI;
  1682. struct ListItem_t * _1;
  1683. unsigned char _2;
  1684. unsigned char _3;
  1685. <bb 2> [local count: 160260]:
  1686. # DEBUG BEGIN_STMT
  1687. if (xTimerPeriodInTicks_5(D) == 0)
  1688. goto <bb 3>; [67.00%]
  1689. else
  1690. goto <bb 5>; [33.00%]
  1691. <bb 3> [local count: 107374]:
  1692. # DEBUG BEGIN_STMT
  1693. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1694. # DEBUG BEGIN_STMT
  1695. # DEBUG BEGIN_STMT
  1696. __asm__ __volatile__(" mov %0, %1
  1697. msr basepri, %0
  1698. isb
  1699. dsb
  1700. " : "=r" ulNewBASEPRI_19 : "i" 16 : "memory");
  1701. # DEBUG ulNewBASEPRI => ulNewBASEPRI_19
  1702. <bb 4> [local count: 1073741824]:
  1703. # DEBUG ulNewBASEPRI => NULL
  1704. # DEBUG BEGIN_STMT
  1705. # DEBUG BEGIN_STMT
  1706. # DEBUG BEGIN_STMT
  1707. <bb 8> [local count: 1073741824]:
  1708. goto <bb 4>; [100.00%]
  1709. <bb 5> [local count: 52886]:
  1710. # DEBUG BEGIN_STMT
  1711. # DEBUG BEGIN_STMT
  1712. prvCheckForValidListAndQueue ();
  1713. # DEBUG BEGIN_STMT
  1714. pxNewTimer_8(D)->pcTimerName = pcTimerName_9(D);
  1715. # DEBUG BEGIN_STMT
  1716. pxNewTimer_8(D)->xTimerPeriodInTicks = xTimerPeriodInTicks_5(D);
  1717. # DEBUG BEGIN_STMT
  1718. pxNewTimer_8(D)->pvTimerID = pvTimerID_12(D);
  1719. # DEBUG BEGIN_STMT
  1720. pxNewTimer_8(D)->pxCallbackFunction = pxCallbackFunction_14(D);
  1721. # DEBUG BEGIN_STMT
  1722. _1 = &pxNewTimer_8(D)->xTimerListItem;
  1723. vListInitialiseItem (_1);
  1724. # DEBUG BEGIN_STMT
  1725. if (uxAutoReload_17(D) != 0)
  1726. goto <bb 6>; [50.00%]
  1727. else
  1728. goto <bb 7>; [50.00%]
  1729. <bb 6> [local count: 26443]:
  1730. # DEBUG BEGIN_STMT
  1731. _2 = pxNewTimer_8(D)->ucStatus;
  1732. _3 = _2 | 4;
  1733. pxNewTimer_8(D)->ucStatus = _3;
  1734. <bb 7> [local count: 52886]:
  1735. # DEBUG BEGIN_STMT
  1736. return;
  1737. }
  1738. xTimerCreate (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction)
  1739. {
  1740. struct Timer_t * pxNewTimer;
  1741. <bb 2> [local count: 1073741824]:
  1742. # DEBUG BEGIN_STMT
  1743. # DEBUG BEGIN_STMT
  1744. pxNewTimer_4 = pvPortMalloc (44);
  1745. # DEBUG pxNewTimer => pxNewTimer_4
  1746. # DEBUG BEGIN_STMT
  1747. if (pxNewTimer_4 != 0B)
  1748. goto <bb 3>; [53.47%]
  1749. else
  1750. goto <bb 4>; [46.53%]
  1751. <bb 3> [local count: 574129754]:
  1752. # DEBUG BEGIN_STMT
  1753. pxNewTimer_4->ucStatus = 0;
  1754. # DEBUG BEGIN_STMT
  1755. prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  1756. <bb 4> [local count: 1073741824]:
  1757. # DEBUG BEGIN_STMT
  1758. return pxNewTimer_4;
  1759. }
  1760. xTimerCreateTimerTask ()
  1761. {
  1762. uint32_t ulNewBASEPRI;
  1763. BaseType_t xReturn;
  1764. struct QueueDefinition * xTimerQueue.0_1;
  1765. <bb 2> [local count: 146556]:
  1766. # DEBUG BEGIN_STMT
  1767. # DEBUG xReturn => 0
  1768. # DEBUG BEGIN_STMT
  1769. prvCheckForValidListAndQueue ();
  1770. # DEBUG BEGIN_STMT
  1771. xTimerQueue.0_1 = xTimerQueue;
  1772. if (xTimerQueue.0_1 != 0B)
  1773. goto <bb 4>; [53.47%]
  1774. else
  1775. goto <bb 5>; [46.53%]
  1776. <bb 4> [local count: 78363]:
  1777. # DEBUG BEGIN_STMT
  1778. xReturn_5 = xTaskCreate (prvTimerTask, "Tmr Svc", 180, 0B, 2, &xTimerTaskHandle);
  1779. # DEBUG xReturn => xReturn_5
  1780. # DEBUG BEGIN_STMT
  1781. # DEBUG BEGIN_STMT
  1782. if (xReturn_5 == 0)
  1783. goto <bb 5>; [50.00%]
  1784. else
  1785. goto <bb 7>; [50.00%]
  1786. <bb 5> [local count: 107374]:
  1787. # DEBUG xReturn => NULL
  1788. # DEBUG BEGIN_STMT
  1789. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1790. # DEBUG BEGIN_STMT
  1791. # DEBUG BEGIN_STMT
  1792. __asm__ __volatile__(" mov %0, %1
  1793. msr basepri, %0
  1794. isb
  1795. dsb
  1796. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1797. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1798. <bb 6> [local count: 1073741824]:
  1799. # DEBUG ulNewBASEPRI => NULL
  1800. # DEBUG BEGIN_STMT
  1801. # DEBUG BEGIN_STMT
  1802. # DEBUG BEGIN_STMT
  1803. <bb 8> [local count: 1073741824]:
  1804. goto <bb 6>; [100.00%]
  1805. <bb 7> [local count: 39182]:
  1806. # DEBUG BEGIN_STMT
  1807. # DEBUG BEGIN_STMT
  1808. return xReturn_5;
  1809. }