timers.c.048i.remove_symbols 60 KB

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