event_groups.c.071i.devirt 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492
  1. Symbol table:
  2. xEventGroupSetBits.part.0/39 (xEventGroupSetBits.part.0) @05db30e0
  3. Type: function definition analyzed
  4. Visibility: prevailing_def_ironly artificial
  5. References:
  6. Referring:
  7. Availability: local
  8. Function flags: count:118111600 (estimated locally) first_run:1 body local split_part optimize_size
  9. Called by: xEventGroupSetBits/10 (52886 (estimated locally),0.23 per call)
  10. Calls: vTaskSuspendAll/21 (118111600 (estimated locally),1.00 per call) vTaskRemoveFromUnorderedEventList/28 (401364694 (estimated locally),3.40 per call) xTaskResumeAll/23 (118111601 (estimated locally),1.00 per call)
  11. xEventGroupClearBits.part.0/36 (xEventGroupClearBits.part.0) @05dada80
  12. Type: function definition analyzed
  13. Visibility: prevailing_def_ironly artificial
  14. References:
  15. Referring:
  16. Availability: local
  17. Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  18. Called by: xEventGroupClearBits/7 (52886 (estimated locally),0.23 per call)
  19. Calls: vPortEnterCritical/25 (1073741824 (estimated locally),1.00 per call) vPortExitCritical/26 (1073741824 (estimated locally),1.00 per call)
  20. vPortFree/29 (vPortFree) @05e96b60
  21. Type: function
  22. Visibility: external public
  23. References:
  24. Referring:
  25. Availability: not_available
  26. Function flags: optimize_size
  27. Called by: vEventGroupDelete/11 (63439 (estimated locally),0.27 per call)
  28. Calls:
  29. vTaskRemoveFromUnorderedEventList/28 (vTaskRemoveFromUnorderedEventList) @05e969a0
  30. Type: function
  31. Visibility: external public
  32. References:
  33. Referring:
  34. Availability: not_available
  35. Function flags: optimize_size
  36. Called by: vEventGroupDelete/11 (1030048 (estimated locally),4.46 per call) xEventGroupSetBits.part.0/39 (401364694 (estimated locally),3.40 per call)
  37. Calls:
  38. xTimerPendFunctionCallFromISR/27 (xTimerPendFunctionCallFromISR) @05e96460
  39. Type: function
  40. Visibility: external public
  41. References:
  42. Referring:
  43. Availability: not_available
  44. Function flags: optimize_size
  45. Called by: xEventGroupSetBitsFromISR/15 (1073741824 (estimated locally),1.00 per call) xEventGroupClearBitsFromISR/8 (1073741824 (estimated locally),1.00 per call)
  46. Calls:
  47. vPortExitCritical/26 (vPortExitCritical) @05e77d20
  48. Type: function
  49. Visibility: external public
  50. References:
  51. Referring:
  52. Availability: not_available
  53. Function flags: optimize_size
  54. Called by: xEventGroupSync/5 (3888 (estimated locally),0.02 per call) xEventGroupClearBits.part.0/36 (1073741824 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call)
  55. Calls:
  56. vPortEnterCritical/25 (vPortEnterCritical) @05e77c40
  57. Type: function
  58. Visibility: external public
  59. References:
  60. Referring:
  61. Availability: not_available
  62. Function flags: optimize_size
  63. Called by: xEventGroupSync/5 (3888 (estimated locally),0.02 per call) xEventGroupClearBits.part.0/36 (1073741824 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call)
  64. Calls:
  65. uxTaskResetEventItemValue/24 (uxTaskResetEventItemValue) @05e77b60
  66. Type: function
  67. Visibility: external public
  68. References:
  69. Referring:
  70. Availability: not_available
  71. Function flags: optimize_size
  72. Called by: xEventGroupSync/5 (11782 (estimated locally),0.05 per call) xEventGroupWaitBits/6 (11782 (estimated locally),0.04 per call)
  73. Calls:
  74. xTaskResumeAll/23 (xTaskResumeAll) @05e77a80
  75. Type: function
  76. Visibility: external public
  77. References:
  78. Referring:
  79. Availability: not_available
  80. Function flags: optimize_size
  81. Called by: vEventGroupDelete/11 (63439 (estimated locally),0.27 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) xEventGroupSetBits.part.0/39 (118111601 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call)
  82. Calls:
  83. vTaskPlaceOnUnorderedEventList/22 (vTaskPlaceOnUnorderedEventList) @05e779a0
  84. Type: function
  85. Visibility: external public
  86. References:
  87. Referring:
  88. Availability: not_available
  89. Function flags: optimize_size
  90. Called by: xEventGroupSync/5 (5132 (estimated locally),0.02 per call) xEventGroupWaitBits/6 (5891 (estimated locally),0.02 per call)
  91. Calls:
  92. vTaskSuspendAll/21 (vTaskSuspendAll) @05e778c0
  93. Type: function
  94. Visibility: external public
  95. References:
  96. Referring:
  97. Availability: not_available
  98. Function flags: optimize_size
  99. Called by: vEventGroupDelete/11 (123389 (estimated locally),0.53 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) xEventGroupSetBits.part.0/39 (118111600 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call)
  100. Calls:
  101. xTaskGetSchedulerState/20 (xTaskGetSchedulerState) @05e777e0
  102. Type: function
  103. Visibility: external public
  104. References:
  105. Referring:
  106. Availability: not_available
  107. Function flags: optimize_size
  108. Called by: xEventGroupSync/5 (35433 (estimated locally),0.16 per call) xEventGroupWaitBits/6 (35433 (estimated locally),0.12 per call)
  109. Calls:
  110. vListInitialise/19 (vListInitialise) @05e77460
  111. Type: function
  112. Visibility: external public
  113. References:
  114. Referring:
  115. Availability: not_available
  116. Function flags: optimize_size
  117. Called by: xEventGroupCreate/4 (574129754 (estimated locally),0.53 per call)
  118. Calls:
  119. pvPortMalloc/18 (pvPortMalloc) @05e77380
  120. Type: function
  121. Visibility: external public
  122. References:
  123. Referring:
  124. Availability: not_available
  125. Function flags: optimize_size
  126. Called by: xEventGroupCreate/4 (1073741824 (estimated locally),1.00 per call)
  127. Calls:
  128. vEventGroupSetNumber/17 (vEventGroupSetNumber) @05e6be00
  129. Type: function definition analyzed
  130. Visibility: externally_visible public
  131. References:
  132. Referring:
  133. Availability: available
  134. Function flags: count:1073741824 (estimated locally) body optimize_size
  135. Called by:
  136. Calls:
  137. uxEventGroupGetNumber/16 (uxEventGroupGetNumber) @05e6b8c0
  138. Type: function definition analyzed
  139. Visibility: externally_visible public
  140. References:
  141. Referring:
  142. Availability: available
  143. Function flags: count:1073741824 (estimated locally) body optimize_size
  144. Called by:
  145. Calls:
  146. xEventGroupSetBitsFromISR/15 (xEventGroupSetBitsFromISR) @05e6b2a0
  147. Type: function definition analyzed
  148. Visibility: externally_visible public
  149. References: vEventGroupSetBitsCallback/12 (addr)
  150. Referring:
  151. Availability: available
  152. Function flags: count:1073741824 (estimated locally) body optimize_size
  153. Called by:
  154. Calls: xTimerPendFunctionCallFromISR/27 (1073741824 (estimated locally),1.00 per call)
  155. prvTestWaitCondition/14 (prvTestWaitCondition) @05e6bd20
  156. Type: function definition analyzed
  157. Visibility: prevailing_def_ironly
  158. References:
  159. Referring:
  160. Availability: local
  161. Function flags: count:1073741824 (estimated locally) body local optimize_size
  162. Called by: xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call)
  163. Calls:
  164. vEventGroupClearBitsCallback/13 (vEventGroupClearBitsCallback) @05e6ba80
  165. Type: function definition analyzed
  166. Visibility: externally_visible public
  167. Address is taken.
  168. References:
  169. Referring: xEventGroupClearBitsFromISR/8 (addr)
  170. Availability: available
  171. Function flags: count:1073741824 (estimated locally) body optimize_size
  172. Called by:
  173. Calls: xEventGroupClearBits/7 (1073741824 (estimated locally),1.00 per call)
  174. vEventGroupSetBitsCallback/12 (vEventGroupSetBitsCallback) @05e6b7e0
  175. Type: function definition analyzed
  176. Visibility: externally_visible public
  177. Address is taken.
  178. References:
  179. Referring: xEventGroupSetBitsFromISR/15 (addr)
  180. Availability: available
  181. Function flags: count:1073741824 (estimated locally) body optimize_size
  182. Called by:
  183. Calls: xEventGroupSetBits/10 (1073741824 (estimated locally),1.00 per call)
  184. vEventGroupDelete/11 (vEventGroupDelete) @05e6b540
  185. Type: function definition analyzed
  186. Visibility: externally_visible public
  187. References:
  188. Referring:
  189. Availability: available
  190. Function flags: count:230763 (estimated locally) body optimize_size
  191. Called by:
  192. Calls: xTaskResumeAll/23 (63439 (estimated locally),0.27 per call) vPortFree/29 (63439 (estimated locally),0.27 per call) vTaskRemoveFromUnorderedEventList/28 (1030048 (estimated locally),4.46 per call) vTaskSuspendAll/21 (123389 (estimated locally),0.53 per call)
  193. xEventGroupSetBits/10 (xEventGroupSetBits) @05e6b1c0
  194. Type: function definition analyzed
  195. Visibility: externally_visible public
  196. References:
  197. Referring:
  198. Availability: available
  199. Function flags: count:228942 (estimated locally) body optimize_size
  200. Called by: vEventGroupSetBitsCallback/12 (1073741824 (estimated locally),1.00 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call)
  201. Calls: xEventGroupSetBits.part.0/39 (52886 (estimated locally),0.23 per call)
  202. xEventGroupGetBitsFromISR/9 (xEventGroupGetBitsFromISR) @05e27a80
  203. Type: function definition analyzed
  204. Visibility: externally_visible public
  205. References:
  206. Referring:
  207. Availability: available
  208. Function flags: count:1073741824 (estimated locally) body optimize_size
  209. Called by:
  210. Calls:
  211. xEventGroupClearBitsFromISR/8 (xEventGroupClearBitsFromISR) @05e270e0
  212. Type: function definition analyzed
  213. Visibility: externally_visible public
  214. References: vEventGroupClearBitsCallback/13 (addr)
  215. Referring:
  216. Availability: available
  217. Function flags: count:1073741824 (estimated locally) body optimize_size
  218. Called by:
  219. Calls: xTimerPendFunctionCallFromISR/27 (1073741824 (estimated locally),1.00 per call)
  220. xEventGroupClearBits/7 (xEventGroupClearBits) @05e27d20
  221. Type: function definition analyzed
  222. Visibility: externally_visible public
  223. References:
  224. Referring:
  225. Availability: available
  226. Function flags: count:228942 (estimated locally) body optimize_size
  227. Called by: vEventGroupClearBitsCallback/13 (1073741824 (estimated locally),1.00 per call)
  228. Calls: xEventGroupClearBits.part.0/36 (52886 (estimated locally),0.23 per call)
  229. xEventGroupWaitBits/6 (xEventGroupWaitBits) @05e279a0
  230. Type: function definition analyzed
  231. Visibility: externally_visible public
  232. References:
  233. Referring:
  234. Availability: available
  235. Function flags: count:306783 (estimated locally) body optimize_size
  236. Called by:
  237. Calls: vPortExitCritical/26 (3888 (estimated locally),0.01 per call) prvTestWaitCondition/14 (3888 (estimated locally),0.01 per call) vPortEnterCritical/25 (3888 (estimated locally),0.01 per call) uxTaskResetEventItemValue/24 (11782 (estimated locally),0.04 per call) xTaskResumeAll/23 (23563 (estimated locally),0.08 per call) vTaskPlaceOnUnorderedEventList/22 (5891 (estimated locally),0.02 per call) prvTestWaitCondition/14 (23563 (estimated locally),0.08 per call) vTaskSuspendAll/21 (23563 (estimated locally),0.08 per call) xTaskGetSchedulerState/20 (35433 (estimated locally),0.12 per call)
  238. xEventGroupSync/5 (xEventGroupSync) @05e27460
  239. Type: function definition analyzed
  240. Visibility: externally_visible public
  241. References:
  242. Referring:
  243. Availability: available
  244. Function flags: count:214748 (estimated locally) body optimize_size
  245. Called by:
  246. Calls: vPortExitCritical/26 (3888 (estimated locally),0.02 per call) vPortEnterCritical/25 (3888 (estimated locally),0.02 per call) uxTaskResetEventItemValue/24 (11782 (estimated locally),0.05 per call) xTaskResumeAll/23 (23563 (estimated locally),0.11 per call) vTaskPlaceOnUnorderedEventList/22 (5132 (estimated locally),0.02 per call) xEventGroupSetBits/10 (23563 (estimated locally),0.11 per call) vTaskSuspendAll/21 (23563 (estimated locally),0.11 per call) xTaskGetSchedulerState/20 (35433 (estimated locally),0.16 per call)
  247. xEventGroupCreate/4 (xEventGroupCreate) @05e27000
  248. Type: function definition analyzed
  249. Visibility: externally_visible public
  250. References:
  251. Referring:
  252. Availability: available
  253. Function flags: count:1073741824 (estimated locally) body optimize_size
  254. Called by:
  255. Calls: vListInitialise/19 (574129754 (estimated locally),0.53 per call) pvPortMalloc/18 (1073741824 (estimated locally),1.00 per call)
  256. xEventGroupSetBits.part.0 (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  257. {
  258. struct ListItem_t * pxListItem;
  259. struct ListItem_t * pxNext;
  260. const struct ListItem_t * pxListEnd;
  261. const struct List_t * pxList;
  262. EventBits_t uxBitsToClear;
  263. EventBits_t uxBitsWaitedFor;
  264. EventBits_t uxControlBits;
  265. struct EventGroup_t * pxEventBits;
  266. BaseType_t xMatchFound;
  267. uint32_t ulNewBASEPRI;
  268. uint32_t ulNewBASEPRI;
  269. long unsigned int _4;
  270. long unsigned int _6;
  271. long unsigned int _11;
  272. long unsigned int _12;
  273. long unsigned int _13;
  274. long unsigned int _14;
  275. long unsigned int _15;
  276. long unsigned int _16;
  277. long unsigned int _19;
  278. long unsigned int _20;
  279. long unsigned int _21;
  280. long unsigned int _23;
  281. long unsigned int _24;
  282. long unsigned int _25;
  283. <bb 12> [local count: 118111600]:
  284. <bb 2> [local count: 118111600]:
  285. # DEBUG BEGIN_STMT
  286. # DEBUG BEGIN_STMT
  287. # DEBUG D#1 => &MEM[(struct EventGroup_t *)xEventGroup_1(D)].xTasksWaitingForBits
  288. # DEBUG pxList => D#1
  289. # DEBUG BEGIN_STMT
  290. pxListEnd_2 = &MEM[(const struct List_t *)xEventGroup_1(D) + 4B].xListEnd;
  291. # DEBUG pxListEnd => pxListEnd_2
  292. # DEBUG BEGIN_STMT
  293. vTaskSuspendAll ();
  294. # DEBUG BEGIN_STMT
  295. # DEBUG BEGIN_STMT
  296. pxListItem_3 = MEM[(const struct List_t *)xEventGroup_1(D) + 4B].xListEnd.pxNext;
  297. # DEBUG pxListItem => pxListItem_3
  298. # DEBUG BEGIN_STMT
  299. _4 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  300. _6 = _4 | uxBitsToSet_5(D);
  301. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _6;
  302. # DEBUG BEGIN_STMT
  303. goto <bb 10>; [100.00%]
  304. <bb 3> [local count: 955630223]:
  305. # DEBUG BEGIN_STMT
  306. pxNext_8 = pxListItem_7->pxNext;
  307. # DEBUG pxNext => pxNext_8
  308. # DEBUG BEGIN_STMT
  309. uxBitsWaitedFor_9 = pxListItem_7->xItemValue;
  310. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_9
  311. # DEBUG BEGIN_STMT
  312. # DEBUG xMatchFound => 0
  313. # DEBUG BEGIN_STMT
  314. # DEBUG uxControlBits => uxBitsWaitedFor_9 & 4278190080
  315. # DEBUG BEGIN_STMT
  316. uxBitsWaitedFor_10 = uxBitsWaitedFor_9 & 16777215;
  317. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_10
  318. # DEBUG BEGIN_STMT
  319. _11 = uxBitsWaitedFor_9 & 67108864;
  320. if (_11 == 0)
  321. goto <bb 4>; [50.00%]
  322. else
  323. goto <bb 5>; [50.00%]
  324. <bb 4> [local count: 477815111]:
  325. # DEBUG BEGIN_STMT
  326. _12 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  327. _13 = uxBitsWaitedFor_10 & _12;
  328. if (_13 != 0)
  329. goto <bb 6>; [50.00%]
  330. else
  331. goto <bb 9>; [50.00%]
  332. <bb 5> [local count: 477815111]:
  333. # DEBUG BEGIN_STMT
  334. _14 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  335. _15 = uxBitsWaitedFor_10 & _14;
  336. if (uxBitsWaitedFor_10 == _15)
  337. goto <bb 6>; [34.00%]
  338. else
  339. goto <bb 9>; [66.00%]
  340. <bb 6> [local count: 401364694]:
  341. # DEBUG xMatchFound => NULL
  342. # DEBUG BEGIN_STMT
  343. _16 = uxBitsWaitedFor_9 & 16777216;
  344. if (_16 != 0)
  345. goto <bb 7>; [50.00%]
  346. else
  347. goto <bb 8>; [50.00%]
  348. <bb 7> [local count: 200682347]:
  349. # DEBUG BEGIN_STMT
  350. uxBitsToClear_18 = uxBitsWaitedFor_10 | uxBitsToClear_17;
  351. # DEBUG uxBitsToClear => uxBitsToClear_18
  352. <bb 8> [local count: 401364694]:
  353. # uxBitsToClear_26 = PHI <uxBitsToClear_17(6), uxBitsToClear_18(7)>
  354. # DEBUG uxBitsToClear => uxBitsToClear_26
  355. # DEBUG BEGIN_STMT
  356. # DEBUG BEGIN_STMT
  357. _19 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  358. _20 = _19 | 33554432;
  359. vTaskRemoveFromUnorderedEventList (pxListItem_7, _20);
  360. <bb 9> [local count: 955630225]:
  361. # pxListItem_27 = PHI <pxNext_8(4), pxNext_8(5), pxNext_8(8)>
  362. # uxBitsToClear_28 = PHI <uxBitsToClear_17(4), uxBitsToClear_17(5), uxBitsToClear_26(8)>
  363. <bb 10> [local count: 1073741824]:
  364. # pxListItem_7 = PHI <pxListItem_3(2), pxListItem_27(9)>
  365. # uxBitsToClear_17 = PHI <0(2), uxBitsToClear_28(9)>
  366. # DEBUG xMatchFound => NULL
  367. # DEBUG uxBitsToClear => uxBitsToClear_17
  368. # DEBUG pxListItem => pxListItem_7
  369. # DEBUG BEGIN_STMT
  370. if (pxListEnd_2 != pxListItem_7)
  371. goto <bb 3>; [89.00%]
  372. else
  373. goto <bb 11>; [11.00%]
  374. <bb 11> [local count: 118111601]:
  375. # uxBitsToClear_22 = PHI <uxBitsToClear_17(10)>
  376. # DEBUG BEGIN_STMT
  377. _21 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  378. _23 = ~uxBitsToClear_22;
  379. _24 = _21 & _23;
  380. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _24;
  381. # DEBUG BEGIN_STMT
  382. xTaskResumeAll ();
  383. # DEBUG BEGIN_STMT
  384. _25 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  385. return _25;
  386. }
  387. xEventGroupClearBits.part.0 (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  388. {
  389. struct EventGroup_t * pxEventBits;
  390. EventBits_t uxReturn;
  391. uint32_t ulNewBASEPRI;
  392. uint32_t ulNewBASEPRI;
  393. long unsigned int _4;
  394. long unsigned int _5;
  395. <bb 3> [local count: 1073741824]:
  396. <bb 2> [local count: 1073741824]:
  397. # DEBUG BEGIN_STMT
  398. # DEBUG BEGIN_STMT
  399. vPortEnterCritical ();
  400. # DEBUG BEGIN_STMT
  401. # DEBUG BEGIN_STMT
  402. uxReturn_2 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  403. # DEBUG uxReturn => uxReturn_2
  404. # DEBUG BEGIN_STMT
  405. _4 = ~uxBitsToClear_3(D);
  406. _5 = uxReturn_2 & _4;
  407. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _5;
  408. # DEBUG BEGIN_STMT
  409. vPortExitCritical ();
  410. # DEBUG BEGIN_STMT
  411. return uxReturn_2;
  412. }
  413. vEventGroupSetNumber (void * xEventGroup, UBaseType_t uxEventGroupNumber)
  414. {
  415. <bb 2> [local count: 1073741824]:
  416. # DEBUG BEGIN_STMT
  417. MEM[(struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber = uxEventGroupNumber_3(D);
  418. return;
  419. }
  420. uxEventGroupGetNumber (void * xEventGroup)
  421. {
  422. UBaseType_t xReturn;
  423. <bb 2> [local count: 1073741824]:
  424. # DEBUG BEGIN_STMT
  425. # DEBUG BEGIN_STMT
  426. # DEBUG pxEventBits => xEventGroup_2(D)
  427. # DEBUG BEGIN_STMT
  428. if (xEventGroup_2(D) == 0B)
  429. goto <bb 4>; [30.00%]
  430. else
  431. goto <bb 3>; [70.00%]
  432. <bb 3> [local count: 751619278]:
  433. # DEBUG BEGIN_STMT
  434. xReturn_4 = MEM[(const struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber;
  435. # DEBUG xReturn => xReturn_4
  436. <bb 4> [local count: 1073741824]:
  437. # xReturn_1 = PHI <0(2), xReturn_4(3)>
  438. # DEBUG xReturn => xReturn_1
  439. # DEBUG BEGIN_STMT
  440. return xReturn_1;
  441. }
  442. xEventGroupSetBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, BaseType_t * pxHigherPriorityTaskWoken)
  443. {
  444. BaseType_t xReturn;
  445. <bb 2> [local count: 1073741824]:
  446. # DEBUG BEGIN_STMT
  447. # DEBUG BEGIN_STMT
  448. # DEBUG BEGIN_STMT
  449. xReturn_6 = xTimerPendFunctionCallFromISR (vEventGroupSetBitsCallback, xEventGroup_2(D), uxBitsToSet_3(D), pxHigherPriorityTaskWoken_4(D));
  450. # DEBUG xReturn => xReturn_6
  451. # DEBUG BEGIN_STMT
  452. return xReturn_6;
  453. }
  454. prvTestWaitCondition (const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits)
  455. {
  456. BaseType_t xWaitConditionMet;
  457. long unsigned int _1;
  458. long unsigned int _2;
  459. <bb 2> [local count: 1073741824]:
  460. # DEBUG BEGIN_STMT
  461. # DEBUG xWaitConditionMet => 0
  462. # DEBUG BEGIN_STMT
  463. if (xWaitForAllBits_4(D) == 0)
  464. goto <bb 3>; [50.00%]
  465. else
  466. goto <bb 5>; [50.00%]
  467. <bb 3> [local count: 536870913]:
  468. # DEBUG BEGIN_STMT
  469. _1 = uxCurrentEventBits_5(D) & uxBitsToWaitFor_6(D);
  470. if (_1 != 0)
  471. goto <bb 4>; [50.00%]
  472. else
  473. goto <bb 7>; [50.00%]
  474. <bb 4> [local count: 268435456]:
  475. # DEBUG BEGIN_STMT
  476. # DEBUG xWaitConditionMet => 1
  477. goto <bb 7>; [100.00%]
  478. <bb 5> [local count: 536870913]:
  479. # DEBUG BEGIN_STMT
  480. _2 = uxCurrentEventBits_5(D) & uxBitsToWaitFor_6(D);
  481. if (_2 == uxBitsToWaitFor_6(D))
  482. goto <bb 6>; [34.00%]
  483. else
  484. goto <bb 7>; [66.00%]
  485. <bb 6> [local count: 182536110]:
  486. # DEBUG BEGIN_STMT
  487. # DEBUG xWaitConditionMet => 1
  488. <bb 7> [local count: 1073741824]:
  489. # xWaitConditionMet_3 = PHI <1(4), 0(5), 1(6), 0(3)>
  490. # DEBUG xWaitConditionMet => xWaitConditionMet_3
  491. # DEBUG BEGIN_STMT
  492. # DEBUG BEGIN_STMT
  493. return xWaitConditionMet_3;
  494. }
  495. vEventGroupClearBitsCallback (void * pvEventGroup, const uint32_t ulBitsToClear)
  496. {
  497. <bb 2> [local count: 1073741824]:
  498. # DEBUG BEGIN_STMT
  499. xEventGroupClearBits (pvEventGroup_2(D), ulBitsToClear_3(D));
  500. return;
  501. }
  502. vEventGroupSetBitsCallback (void * pvEventGroup, const uint32_t ulBitsToSet)
  503. {
  504. <bb 2> [local count: 1073741824]:
  505. # DEBUG BEGIN_STMT
  506. xEventGroupSetBits (pvEventGroup_2(D), ulBitsToSet_3(D));
  507. return;
  508. }
  509. vEventGroupDelete (struct EventGroupDef_t * xEventGroup)
  510. {
  511. uint32_t ulNewBASEPRI;
  512. uint32_t ulNewBASEPRI;
  513. struct xLIST_ITEM * _1;
  514. const struct MiniListItem_t * _2;
  515. long unsigned int _3;
  516. <bb 2> [local count: 230763]:
  517. # DEBUG BEGIN_STMT
  518. if (xEventGroup_5(D) == 0B)
  519. goto <bb 3>; [46.53%]
  520. else
  521. goto <bb 5>; [53.47%]
  522. <bb 3> [local count: 107374]:
  523. # DEBUG BEGIN_STMT
  524. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  525. # DEBUG BEGIN_STMT
  526. # DEBUG BEGIN_STMT
  527. __asm__ __volatile__(" mov %0, %1
  528. msr basepri, %0
  529. isb
  530. dsb
  531. " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
  532. # DEBUG ulNewBASEPRI => ulNewBASEPRI_11
  533. <bb 4> [local count: 1073741824]:
  534. # DEBUG ulNewBASEPRI => NULL
  535. # DEBUG BEGIN_STMT
  536. # DEBUG BEGIN_STMT
  537. # DEBUG BEGIN_STMT
  538. <bb 12> [local count: 1073741824]:
  539. goto <bb 4>; [100.00%]
  540. <bb 5> [local count: 123389]:
  541. # DEBUG BEGIN_STMT
  542. # DEBUG BEGIN_STMT
  543. # DEBUG pxEventBits => xEventGroup_5(D)
  544. # DEBUG BEGIN_STMT
  545. # DEBUG D#2 => &MEM[(struct EventGroup_t *)xEventGroup_5(D)].xTasksWaitingForBits
  546. # DEBUG pxTasksWaitingForBits => D#2
  547. # DEBUG BEGIN_STMT
  548. vTaskSuspendAll ();
  549. # DEBUG BEGIN_STMT
  550. # DEBUG BEGIN_STMT
  551. goto <bb 10>; [100.00%]
  552. <bb 6> [local count: 1089998]:
  553. # DEBUG BEGIN_STMT
  554. _1 = MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd.pxNext;
  555. _2 = &MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd;
  556. if (_1 == _2)
  557. goto <bb 7>; [5.50%]
  558. else
  559. goto <bb 9>; [94.50%]
  560. <bb 7> [local count: 59950]:
  561. # DEBUG BEGIN_STMT
  562. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  563. # DEBUG BEGIN_STMT
  564. # DEBUG BEGIN_STMT
  565. __asm__ __volatile__(" mov %0, %1
  566. msr basepri, %0
  567. isb
  568. dsb
  569. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  570. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  571. <bb 8> [local count: 599500022]:
  572. # DEBUG ulNewBASEPRI => NULL
  573. # DEBUG BEGIN_STMT
  574. # DEBUG BEGIN_STMT
  575. # DEBUG BEGIN_STMT
  576. <bb 13> [local count: 599500022]:
  577. goto <bb 8>; [100.00%]
  578. <bb 9> [local count: 1030048]:
  579. # DEBUG BEGIN_STMT
  580. # DEBUG BEGIN_STMT
  581. vTaskRemoveFromUnorderedEventList (_1, 33554432);
  582. <bb 10> [local count: 1153437]:
  583. # DEBUG BEGIN_STMT
  584. _3 ={v} MEM[(const struct List_t *)xEventGroup_5(D) + 4B].uxNumberOfItems;
  585. if (_3 != 0)
  586. goto <bb 6>; [94.50%]
  587. else
  588. goto <bb 11>; [5.50%]
  589. <bb 11> [local count: 63439]:
  590. # DEBUG BEGIN_STMT
  591. vPortFree (xEventGroup_5(D));
  592. # DEBUG BEGIN_STMT
  593. xTaskResumeAll ();
  594. return;
  595. }
  596. xEventGroupSetBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  597. {
  598. EventBits_t D.6634;
  599. uint32_t ulNewBASEPRI;
  600. uint32_t ulNewBASEPRI;
  601. long unsigned int _1;
  602. <bb 2> [local count: 228942]:
  603. # DEBUG BEGIN_STMT
  604. # DEBUG BEGIN_STMT
  605. # DEBUG BEGIN_STMT
  606. # DEBUG BEGIN_STMT
  607. # DEBUG uxBitsToClear => 0
  608. # DEBUG BEGIN_STMT
  609. # DEBUG pxEventBits => xEventGroup_3(D)
  610. # DEBUG BEGIN_STMT
  611. # DEBUG xMatchFound => 0
  612. # DEBUG BEGIN_STMT
  613. if (xEventGroup_3(D) == 0B)
  614. goto <bb 3>; [30.00%]
  615. else
  616. goto <bb 5>; [70.00%]
  617. <bb 3> [local count: 68683]:
  618. # DEBUG BEGIN_STMT
  619. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  620. # DEBUG BEGIN_STMT
  621. # DEBUG BEGIN_STMT
  622. __asm__ __volatile__(" mov %0, %1
  623. msr basepri, %0
  624. isb
  625. dsb
  626. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  627. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  628. <bb 4> [local count: 686828460]:
  629. # DEBUG ulNewBASEPRI => NULL
  630. # DEBUG BEGIN_STMT
  631. # DEBUG BEGIN_STMT
  632. # DEBUG BEGIN_STMT
  633. <bb 9> [local count: 686828460]:
  634. goto <bb 4>; [100.00%]
  635. <bb 5> [local count: 160260]:
  636. # DEBUG BEGIN_STMT
  637. # DEBUG BEGIN_STMT
  638. _1 = uxBitsToSet_4(D) & 4278190080;
  639. if (_1 != 0)
  640. goto <bb 6>; [67.00%]
  641. else
  642. goto <bb 8>; [33.00%]
  643. <bb 6> [local count: 107374]:
  644. # DEBUG BEGIN_STMT
  645. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  646. # DEBUG BEGIN_STMT
  647. # DEBUG BEGIN_STMT
  648. __asm__ __volatile__(" mov %0, %1
  649. msr basepri, %0
  650. isb
  651. dsb
  652. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  653. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  654. <bb 7> [local count: 1073741824]:
  655. # DEBUG ulNewBASEPRI => NULL
  656. # DEBUG BEGIN_STMT
  657. # DEBUG BEGIN_STMT
  658. # DEBUG BEGIN_STMT
  659. <bb 10> [local count: 1073741824]:
  660. goto <bb 7>; [100.00%]
  661. <bb 8> [local count: 52886]:
  662. _6 = xEventGroupSetBits.part.0 (xEventGroup_3(D), uxBitsToSet_4(D));
  663. return _6;
  664. }
  665. xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
  666. {
  667. uint32_t ulOriginalBASEPRI;
  668. uint32_t ulNewBASEPRI;
  669. EventBits_t uxReturn;
  670. <bb 2> [local count: 1073741824]:
  671. # DEBUG BEGIN_STMT
  672. # DEBUG BEGIN_STMT
  673. # DEBUG pxEventBits => xEventGroup_1(D)
  674. # DEBUG BEGIN_STMT
  675. # DEBUG BEGIN_STMT
  676. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  677. # DEBUG BEGIN_STMT
  678. # DEBUG BEGIN_STMT
  679. __asm__ __volatile__(" mrs %0, basepri
  680. mov %1, %2
  681. msr basepri, %1
  682. isb
  683. dsb
  684. " : "=r" ulOriginalBASEPRI_4, "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  685. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  686. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_4
  687. # DEBUG BEGIN_STMT
  688. # DEBUG ulNewBASEPRI => NULL
  689. # DEBUG ulOriginalBASEPRI => NULL
  690. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_4
  691. # DEBUG BEGIN_STMT
  692. uxReturn_3 = MEM[(const struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  693. # DEBUG uxReturn => uxReturn_3
  694. # DEBUG BEGIN_STMT
  695. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_4
  696. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  697. # DEBUG BEGIN_STMT
  698. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_4 : "memory");
  699. # DEBUG ulNewMaskValue => NULL
  700. # DEBUG BEGIN_STMT
  701. return uxReturn_3;
  702. }
  703. xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  704. {
  705. BaseType_t xReturn;
  706. <bb 2> [local count: 1073741824]:
  707. # DEBUG BEGIN_STMT
  708. # DEBUG BEGIN_STMT
  709. # DEBUG BEGIN_STMT
  710. xReturn_5 = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup_2(D), uxBitsToClear_3(D), 0B);
  711. # DEBUG xReturn => xReturn_5
  712. # DEBUG BEGIN_STMT
  713. return xReturn_5;
  714. }
  715. xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  716. {
  717. EventBits_t D.6607;
  718. uint32_t ulNewBASEPRI;
  719. uint32_t ulNewBASEPRI;
  720. long unsigned int _1;
  721. <bb 2> [local count: 228942]:
  722. # DEBUG BEGIN_STMT
  723. # DEBUG pxEventBits => xEventGroup_3(D)
  724. # DEBUG BEGIN_STMT
  725. # DEBUG BEGIN_STMT
  726. if (xEventGroup_3(D) == 0B)
  727. goto <bb 3>; [30.00%]
  728. else
  729. goto <bb 5>; [70.00%]
  730. <bb 3> [local count: 68683]:
  731. # DEBUG BEGIN_STMT
  732. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  733. # DEBUG BEGIN_STMT
  734. # DEBUG BEGIN_STMT
  735. __asm__ __volatile__(" mov %0, %1
  736. msr basepri, %0
  737. isb
  738. dsb
  739. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  740. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  741. <bb 4> [local count: 686828460]:
  742. # DEBUG ulNewBASEPRI => NULL
  743. # DEBUG BEGIN_STMT
  744. # DEBUG BEGIN_STMT
  745. # DEBUG BEGIN_STMT
  746. <bb 9> [local count: 686828460]:
  747. goto <bb 4>; [100.00%]
  748. <bb 5> [local count: 160260]:
  749. # DEBUG BEGIN_STMT
  750. # DEBUG BEGIN_STMT
  751. _1 = uxBitsToClear_5(D) & 4278190080;
  752. if (_1 != 0)
  753. goto <bb 6>; [67.00%]
  754. else
  755. goto <bb 8>; [33.00%]
  756. <bb 6> [local count: 107374]:
  757. # DEBUG BEGIN_STMT
  758. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  759. # DEBUG BEGIN_STMT
  760. # DEBUG BEGIN_STMT
  761. __asm__ __volatile__(" mov %0, %1
  762. msr basepri, %0
  763. isb
  764. dsb
  765. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  766. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  767. <bb 7> [local count: 1073741824]:
  768. # DEBUG ulNewBASEPRI => NULL
  769. # DEBUG BEGIN_STMT
  770. # DEBUG BEGIN_STMT
  771. # DEBUG BEGIN_STMT
  772. <bb 10> [local count: 1073741824]:
  773. goto <bb 7>; [100.00%]
  774. <bb 8> [local count: 52886]:
  775. _2 = xEventGroupClearBits.part.0 (xEventGroup_3(D), uxBitsToClear_5(D));
  776. return _2;
  777. }
  778. xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
  779. {
  780. uint32_t ulNewBASEPRI;
  781. uint32_t ulNewBASEPRI;
  782. uint32_t ulNewBASEPRI;
  783. uint32_t ulNewBASEPRI;
  784. const EventBits_t uxCurrentEventBits;
  785. BaseType_t xAlreadyYielded;
  786. BaseType_t xWaitConditionMet;
  787. EventBits_t uxControlBits;
  788. EventBits_t uxReturn;
  789. long unsigned int _1;
  790. long int _2;
  791. long unsigned int _3;
  792. long unsigned int _4;
  793. struct List_t * _5;
  794. long unsigned int _6;
  795. long unsigned int _7;
  796. long int _8;
  797. long unsigned int _9;
  798. long unsigned int _10;
  799. <bb 2> [local count: 306783]:
  800. # DEBUG BEGIN_STMT
  801. # DEBUG pxEventBits => xEventGroup_22(D)
  802. # DEBUG BEGIN_STMT
  803. # DEBUG uxControlBits => 0
  804. # DEBUG BEGIN_STMT
  805. # DEBUG BEGIN_STMT
  806. # DEBUG xTimeoutOccurred => 0
  807. # DEBUG BEGIN_STMT
  808. if (xEventGroup_22(D) == 0B)
  809. goto <bb 3>; [30.00%]
  810. else
  811. goto <bb 5>; [70.00%]
  812. <bb 3> [local count: 92035]:
  813. # DEBUG BEGIN_STMT
  814. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  815. # DEBUG BEGIN_STMT
  816. # DEBUG BEGIN_STMT
  817. __asm__ __volatile__(" mov %0, %1
  818. msr basepri, %0
  819. isb
  820. dsb
  821. " : "=r" ulNewBASEPRI_45 : "i" 16 : "memory");
  822. # DEBUG ulNewBASEPRI => ulNewBASEPRI_45
  823. <bb 4> [local count: 920350133]:
  824. # DEBUG ulNewBASEPRI => NULL
  825. # DEBUG BEGIN_STMT
  826. # DEBUG BEGIN_STMT
  827. # DEBUG BEGIN_STMT
  828. <bb 34> [local count: 920350133]:
  829. goto <bb 4>; [100.00%]
  830. <bb 5> [local count: 214748]:
  831. # DEBUG BEGIN_STMT
  832. # DEBUG BEGIN_STMT
  833. _1 = uxBitsToWaitFor_23(D) & 4278190080;
  834. if (_1 != 0)
  835. goto <bb 6>; [50.00%]
  836. else
  837. goto <bb 8>; [50.00%]
  838. <bb 6> [local count: 107374]:
  839. # DEBUG BEGIN_STMT
  840. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  841. # DEBUG BEGIN_STMT
  842. # DEBUG BEGIN_STMT
  843. __asm__ __volatile__(" mov %0, %1
  844. msr basepri, %0
  845. isb
  846. dsb
  847. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  848. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  849. <bb 7> [local count: 1073741823]:
  850. # DEBUG ulNewBASEPRI => NULL
  851. # DEBUG BEGIN_STMT
  852. # DEBUG BEGIN_STMT
  853. # DEBUG BEGIN_STMT
  854. <bb 35> [local count: 1073741824]:
  855. goto <bb 7>; [100.00%]
  856. <bb 8> [local count: 107374]:
  857. # DEBUG BEGIN_STMT
  858. # DEBUG BEGIN_STMT
  859. if (uxBitsToWaitFor_23(D) == 0)
  860. goto <bb 9>; [67.00%]
  861. else
  862. goto <bb 11>; [33.00%]
  863. <bb 9> [local count: 71941]:
  864. # DEBUG BEGIN_STMT
  865. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  866. # DEBUG BEGIN_STMT
  867. # DEBUG BEGIN_STMT
  868. __asm__ __volatile__(" mov %0, %1
  869. msr basepri, %0
  870. isb
  871. dsb
  872. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  873. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  874. <bb 10> [local count: 719407021]:
  875. # DEBUG ulNewBASEPRI => NULL
  876. # DEBUG BEGIN_STMT
  877. # DEBUG BEGIN_STMT
  878. # DEBUG BEGIN_STMT
  879. <bb 36> [local count: 719407021]:
  880. goto <bb 10>; [100.00%]
  881. <bb 11> [local count: 35433]:
  882. # DEBUG BEGIN_STMT
  883. # DEBUG BEGIN_STMT
  884. _2 = xTaskGetSchedulerState ();
  885. if (_2 != 0)
  886. goto <bb 15>; [33.00%]
  887. else
  888. goto <bb 12>; [67.00%]
  889. <bb 12> [local count: 23740]:
  890. if (xTicksToWait_26(D) == 0)
  891. goto <bb 15>; [50.00%]
  892. else
  893. goto <bb 13>; [50.00%]
  894. <bb 13> [local count: 11870]:
  895. # DEBUG BEGIN_STMT
  896. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  897. # DEBUG BEGIN_STMT
  898. # DEBUG BEGIN_STMT
  899. __asm__ __volatile__(" mov %0, %1
  900. msr basepri, %0
  901. isb
  902. dsb
  903. " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory");
  904. # DEBUG ulNewBASEPRI => ulNewBASEPRI_50
  905. <bb 14> [local count: 118702158]:
  906. # DEBUG ulNewBASEPRI => NULL
  907. # DEBUG BEGIN_STMT
  908. # DEBUG BEGIN_STMT
  909. # DEBUG BEGIN_STMT
  910. <bb 37> [local count: 118702158]:
  911. goto <bb 14>; [100.00%]
  912. <bb 15> [local count: 23563]:
  913. # DEBUG BEGIN_STMT
  914. # DEBUG BEGIN_STMT
  915. vTaskSuspendAll ();
  916. # DEBUG BEGIN_STMT
  917. uxCurrentEventBits_28 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  918. # DEBUG uxCurrentEventBits => uxCurrentEventBits_28
  919. # DEBUG BEGIN_STMT
  920. xWaitConditionMet_31 = prvTestWaitCondition (uxCurrentEventBits_28, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  921. # DEBUG xWaitConditionMet => xWaitConditionMet_31
  922. # DEBUG BEGIN_STMT
  923. if (xWaitConditionMet_31 != 0)
  924. goto <bb 16>; [50.00%]
  925. else
  926. goto <bb 18>; [50.00%]
  927. <bb 16> [local count: 11782]:
  928. # DEBUG BEGIN_STMT
  929. # DEBUG uxReturn => uxCurrentEventBits_28
  930. # DEBUG BEGIN_STMT
  931. # DEBUG xTicksToWait => 0
  932. # DEBUG BEGIN_STMT
  933. if (xClearOnExit_32(D) != 0)
  934. goto <bb 17>; [50.00%]
  935. else
  936. goto <bb 24>; [50.00%]
  937. <bb 17> [local count: 5891]:
  938. # DEBUG BEGIN_STMT
  939. _3 = ~uxBitsToWaitFor_23(D);
  940. _4 = _3 & uxCurrentEventBits_28;
  941. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _4;
  942. goto <bb 24>; [100.00%]
  943. <bb 18> [local count: 11782]:
  944. # DEBUG BEGIN_STMT
  945. if (xTicksToWait_26(D) == 0)
  946. goto <bb 24>; [50.00%]
  947. else
  948. goto <bb 19>; [50.00%]
  949. <bb 19> [local count: 5891]:
  950. # DEBUG BEGIN_STMT
  951. if (xClearOnExit_32(D) != 0)
  952. goto <bb 20>; [50.00%]
  953. else
  954. goto <bb 21>; [50.00%]
  955. <bb 20> [local count: 2945]:
  956. # DEBUG BEGIN_STMT
  957. # DEBUG uxControlBits => 16777216
  958. <bb 21> [local count: 5891]:
  959. # uxControlBits_15 = PHI <0(19), 16777216(20)>
  960. # DEBUG uxControlBits => uxControlBits_15
  961. # DEBUG BEGIN_STMT
  962. # DEBUG BEGIN_STMT
  963. if (xWaitForAllBits_29(D) != 0)
  964. goto <bb 22>; [50.00%]
  965. else
  966. goto <bb 23>; [50.00%]
  967. <bb 22> [local count: 2945]:
  968. # DEBUG BEGIN_STMT
  969. uxControlBits_33 = uxControlBits_15 | 67108864;
  970. # DEBUG uxControlBits => uxControlBits_33
  971. <bb 23> [local count: 5891]:
  972. # uxControlBits_16 = PHI <uxControlBits_15(21), uxControlBits_33(22)>
  973. # DEBUG uxControlBits => uxControlBits_16
  974. # DEBUG BEGIN_STMT
  975. # DEBUG BEGIN_STMT
  976. _5 = &MEM[(struct EventGroup_t *)xEventGroup_22(D)].xTasksWaitingForBits;
  977. _6 = uxControlBits_16 | uxBitsToWaitFor_23(D);
  978. vTaskPlaceOnUnorderedEventList (_5, _6, xTicksToWait_26(D));
  979. # DEBUG BEGIN_STMT
  980. # DEBUG uxReturn => 0
  981. <bb 24> [local count: 23563]:
  982. # xTicksToWait_11 = PHI <0(17), xTicksToWait_26(D)(18), xTicksToWait_26(D)(23), 0(16)>
  983. # uxReturn_12 = PHI <uxCurrentEventBits_28(17), uxCurrentEventBits_28(18), 0(23), uxCurrentEventBits_28(16)>
  984. # DEBUG xTimeoutOccurred => NULL
  985. # DEBUG uxReturn => uxReturn_12
  986. # DEBUG xTicksToWait => xTicksToWait_11
  987. # DEBUG BEGIN_STMT
  988. # DEBUG BEGIN_STMT
  989. xAlreadyYielded_37 = xTaskResumeAll ();
  990. # DEBUG xAlreadyYielded => xAlreadyYielded_37
  991. # DEBUG BEGIN_STMT
  992. if (xTicksToWait_11 != 0)
  993. goto <bb 25>; [50.00%]
  994. else
  995. goto <bb 33>; [50.00%]
  996. <bb 25> [local count: 11782]:
  997. # DEBUG BEGIN_STMT
  998. if (xAlreadyYielded_37 == 0)
  999. goto <bb 26>; [50.00%]
  1000. else
  1001. goto <bb 27>; [50.00%]
  1002. <bb 26> [local count: 5891]:
  1003. # DEBUG BEGIN_STMT
  1004. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1005. # DEBUG BEGIN_STMT
  1006. __asm__ __volatile__("dsb" : : : "memory");
  1007. # DEBUG BEGIN_STMT
  1008. __asm__ __volatile__("isb");
  1009. # DEBUG BEGIN_STMT
  1010. <bb 27> [local count: 11782]:
  1011. # DEBUG BEGIN_STMT
  1012. # DEBUG BEGIN_STMT
  1013. uxReturn_42 = uxTaskResetEventItemValue ();
  1014. # DEBUG uxReturn => uxReturn_42
  1015. # DEBUG BEGIN_STMT
  1016. _7 = uxReturn_42 & 33554432;
  1017. if (_7 == 0)
  1018. goto <bb 28>; [33.00%]
  1019. else
  1020. goto <bb 32>; [67.00%]
  1021. <bb 28> [local count: 3888]:
  1022. # DEBUG BEGIN_STMT
  1023. vPortEnterCritical ();
  1024. # DEBUG BEGIN_STMT
  1025. uxReturn_44 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  1026. # DEBUG uxReturn => uxReturn_44
  1027. # DEBUG BEGIN_STMT
  1028. _8 = prvTestWaitCondition (uxReturn_44, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  1029. if (_8 != 0)
  1030. goto <bb 29>; [50.00%]
  1031. else
  1032. goto <bb 31>; [50.00%]
  1033. <bb 29> [local count: 1944]:
  1034. # DEBUG BEGIN_STMT
  1035. if (xClearOnExit_32(D) != 0)
  1036. goto <bb 30>; [50.00%]
  1037. else
  1038. goto <bb 31>; [50.00%]
  1039. <bb 30> [local count: 972]:
  1040. # DEBUG BEGIN_STMT
  1041. _9 = ~uxBitsToWaitFor_23(D);
  1042. _10 = _9 & uxReturn_44;
  1043. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _10;
  1044. <bb 31> [local count: 3888]:
  1045. # DEBUG BEGIN_STMT
  1046. # DEBUG BEGIN_STMT
  1047. # DEBUG xTimeoutOccurred => 1
  1048. # DEBUG BEGIN_STMT
  1049. vPortExitCritical ();
  1050. <bb 32> [local count: 11782]:
  1051. # uxReturn_13 = PHI <uxReturn_42(27), uxReturn_44(31)>
  1052. # DEBUG uxReturn => uxReturn_13
  1053. # DEBUG BEGIN_STMT
  1054. # DEBUG BEGIN_STMT
  1055. uxReturn_48 = uxReturn_13 & 16777215;
  1056. # DEBUG uxReturn => uxReturn_48
  1057. <bb 33> [local count: 23563]:
  1058. # uxReturn_14 = PHI <uxReturn_12(24), uxReturn_48(32)>
  1059. # DEBUG uxReturn => uxReturn_14
  1060. # DEBUG BEGIN_STMT
  1061. # DEBUG BEGIN_STMT
  1062. # DEBUG BEGIN_STMT
  1063. return uxReturn_14;
  1064. }
  1065. xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
  1066. {
  1067. uint32_t ulNewBASEPRI;
  1068. uint32_t ulNewBASEPRI;
  1069. uint32_t ulNewBASEPRI;
  1070. BaseType_t xAlreadyYielded;
  1071. EventBits_t uxReturn;
  1072. EventBits_t uxOriginalBitValue;
  1073. long unsigned int _1;
  1074. long int _2;
  1075. long unsigned int _3;
  1076. long unsigned int _4;
  1077. long unsigned int _5;
  1078. long unsigned int _6;
  1079. long unsigned int _7;
  1080. struct List_t * _8;
  1081. long unsigned int _9;
  1082. long unsigned int _10;
  1083. long unsigned int _11;
  1084. long unsigned int _12;
  1085. long unsigned int _13;
  1086. <bb 2> [local count: 214748]:
  1087. # DEBUG BEGIN_STMT
  1088. # DEBUG BEGIN_STMT
  1089. # DEBUG pxEventBits => xEventGroup_23(D)
  1090. # DEBUG BEGIN_STMT
  1091. # DEBUG BEGIN_STMT
  1092. # DEBUG xTimeoutOccurred => 0
  1093. # DEBUG BEGIN_STMT
  1094. _1 = uxBitsToWaitFor_24(D) & 4278190080;
  1095. if (_1 != 0)
  1096. goto <bb 3>; [50.00%]
  1097. else
  1098. goto <bb 5>; [50.00%]
  1099. <bb 3> [local count: 107374]:
  1100. # DEBUG BEGIN_STMT
  1101. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1102. # DEBUG BEGIN_STMT
  1103. # DEBUG BEGIN_STMT
  1104. __asm__ __volatile__(" mov %0, %1
  1105. msr basepri, %0
  1106. isb
  1107. dsb
  1108. " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory");
  1109. # DEBUG ulNewBASEPRI => ulNewBASEPRI_47
  1110. <bb 4> [local count: 1073741824]:
  1111. # DEBUG ulNewBASEPRI => NULL
  1112. # DEBUG BEGIN_STMT
  1113. # DEBUG BEGIN_STMT
  1114. # DEBUG BEGIN_STMT
  1115. <bb 26> [local count: 1073741824]:
  1116. goto <bb 4>; [100.00%]
  1117. <bb 5> [local count: 107374]:
  1118. # DEBUG BEGIN_STMT
  1119. # DEBUG BEGIN_STMT
  1120. if (uxBitsToWaitFor_24(D) == 0)
  1121. goto <bb 6>; [67.00%]
  1122. else
  1123. goto <bb 8>; [33.00%]
  1124. <bb 6> [local count: 71941]:
  1125. # DEBUG BEGIN_STMT
  1126. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1127. # DEBUG BEGIN_STMT
  1128. # DEBUG BEGIN_STMT
  1129. __asm__ __volatile__(" mov %0, %1
  1130. msr basepri, %0
  1131. isb
  1132. dsb
  1133. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  1134. # DEBUG ulNewBASEPRI => ulNewBASEPRI_48
  1135. <bb 7> [local count: 719407023]:
  1136. # DEBUG ulNewBASEPRI => NULL
  1137. # DEBUG BEGIN_STMT
  1138. # DEBUG BEGIN_STMT
  1139. # DEBUG BEGIN_STMT
  1140. <bb 27> [local count: 719407023]:
  1141. goto <bb 7>; [100.00%]
  1142. <bb 8> [local count: 35433]:
  1143. # DEBUG BEGIN_STMT
  1144. # DEBUG BEGIN_STMT
  1145. _2 = xTaskGetSchedulerState ();
  1146. if (_2 != 0)
  1147. goto <bb 12>; [33.00%]
  1148. else
  1149. goto <bb 9>; [67.00%]
  1150. <bb 9> [local count: 23740]:
  1151. if (xTicksToWait_27(D) == 0)
  1152. goto <bb 12>; [50.00%]
  1153. else
  1154. goto <bb 10>; [50.00%]
  1155. <bb 10> [local count: 11870]:
  1156. # DEBUG BEGIN_STMT
  1157. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1158. # DEBUG BEGIN_STMT
  1159. # DEBUG BEGIN_STMT
  1160. __asm__ __volatile__(" mov %0, %1
  1161. msr basepri, %0
  1162. isb
  1163. dsb
  1164. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  1165. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  1166. <bb 11> [local count: 118702159]:
  1167. # DEBUG ulNewBASEPRI => NULL
  1168. # DEBUG BEGIN_STMT
  1169. # DEBUG BEGIN_STMT
  1170. # DEBUG BEGIN_STMT
  1171. <bb 28> [local count: 118702159]:
  1172. goto <bb 11>; [100.00%]
  1173. <bb 12> [local count: 23563]:
  1174. # DEBUG BEGIN_STMT
  1175. # DEBUG BEGIN_STMT
  1176. vTaskSuspendAll ();
  1177. # DEBUG BEGIN_STMT
  1178. uxOriginalBitValue_29 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1179. # DEBUG uxOriginalBitValue => uxOriginalBitValue_29
  1180. # DEBUG BEGIN_STMT
  1181. xEventGroupSetBits (xEventGroup_23(D), uxBitsToSet_30(D));
  1182. # DEBUG BEGIN_STMT
  1183. _3 = uxOriginalBitValue_29 | uxBitsToSet_30(D);
  1184. _4 = _3 & uxBitsToWaitFor_24(D);
  1185. if (_4 == uxBitsToWaitFor_24(D))
  1186. goto <bb 13>; [34.00%]
  1187. else
  1188. goto <bb 14>; [66.00%]
  1189. <bb 13> [local count: 8011]:
  1190. # DEBUG BEGIN_STMT
  1191. # DEBUG uxReturn => _3
  1192. # DEBUG BEGIN_STMT
  1193. _5 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1194. _6 = ~uxBitsToWaitFor_24(D);
  1195. _7 = _5 & _6;
  1196. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _7;
  1197. # DEBUG BEGIN_STMT
  1198. # DEBUG xTicksToWait => 0
  1199. goto <bb 17>; [100.00%]
  1200. <bb 14> [local count: 15552]:
  1201. # DEBUG BEGIN_STMT
  1202. if (xTicksToWait_27(D) != 0)
  1203. goto <bb 15>; [33.00%]
  1204. else
  1205. goto <bb 16>; [67.00%]
  1206. <bb 15> [local count: 5132]:
  1207. # DEBUG BEGIN_STMT
  1208. # DEBUG BEGIN_STMT
  1209. _8 = &MEM[(struct EventGroup_t *)xEventGroup_23(D)].xTasksWaitingForBits;
  1210. _9 = uxBitsToWaitFor_24(D) | 83886080;
  1211. vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait_27(D));
  1212. # DEBUG BEGIN_STMT
  1213. # DEBUG uxReturn => 0
  1214. goto <bb 17>; [100.00%]
  1215. <bb 16> [local count: 10420]:
  1216. # DEBUG BEGIN_STMT
  1217. uxReturn_32 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1218. # DEBUG uxReturn => uxReturn_32
  1219. # DEBUG BEGIN_STMT
  1220. # DEBUG xTimeoutOccurred => 1
  1221. <bb 17> [local count: 23563]:
  1222. # xTicksToWait_14 = PHI <0(13), xTicksToWait_27(D)(15), 0(16)>
  1223. # uxReturn_15 = PHI <_3(13), 0(15), uxReturn_32(16)>
  1224. # DEBUG uxReturn => uxReturn_15
  1225. # DEBUG xTicksToWait => xTicksToWait_14
  1226. # DEBUG BEGIN_STMT
  1227. xAlreadyYielded_36 = xTaskResumeAll ();
  1228. # DEBUG xAlreadyYielded => xAlreadyYielded_36
  1229. # DEBUG BEGIN_STMT
  1230. if (xTicksToWait_14 != 0)
  1231. goto <bb 18>; [50.00%]
  1232. else
  1233. goto <bb 25>; [50.00%]
  1234. <bb 18> [local count: 11782]:
  1235. # DEBUG BEGIN_STMT
  1236. if (xAlreadyYielded_36 == 0)
  1237. goto <bb 19>; [50.00%]
  1238. else
  1239. goto <bb 20>; [50.00%]
  1240. <bb 19> [local count: 5891]:
  1241. # DEBUG BEGIN_STMT
  1242. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1243. # DEBUG BEGIN_STMT
  1244. __asm__ __volatile__("dsb" : : : "memory");
  1245. # DEBUG BEGIN_STMT
  1246. __asm__ __volatile__("isb");
  1247. # DEBUG BEGIN_STMT
  1248. <bb 20> [local count: 11782]:
  1249. # DEBUG BEGIN_STMT
  1250. # DEBUG BEGIN_STMT
  1251. uxReturn_41 = uxTaskResetEventItemValue ();
  1252. # DEBUG uxReturn => uxReturn_41
  1253. # DEBUG BEGIN_STMT
  1254. _10 = uxReturn_41 & 33554432;
  1255. if (_10 == 0)
  1256. goto <bb 21>; [33.00%]
  1257. else
  1258. goto <bb 24>; [67.00%]
  1259. <bb 21> [local count: 3888]:
  1260. # DEBUG BEGIN_STMT
  1261. vPortEnterCritical ();
  1262. # DEBUG BEGIN_STMT
  1263. uxReturn_43 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1264. # DEBUG uxReturn => uxReturn_43
  1265. # DEBUG BEGIN_STMT
  1266. _11 = uxBitsToWaitFor_24(D) & uxReturn_43;
  1267. if (_11 == uxBitsToWaitFor_24(D))
  1268. goto <bb 22>; [34.00%]
  1269. else
  1270. goto <bb 23>; [66.00%]
  1271. <bb 22> [local count: 1322]:
  1272. # DEBUG BEGIN_STMT
  1273. _12 = ~uxBitsToWaitFor_24(D);
  1274. _13 = _12 & uxReturn_43;
  1275. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _13;
  1276. <bb 23> [local count: 3888]:
  1277. # DEBUG BEGIN_STMT
  1278. # DEBUG BEGIN_STMT
  1279. vPortExitCritical ();
  1280. # DEBUG BEGIN_STMT
  1281. # DEBUG xTimeoutOccurred => 1
  1282. <bb 24> [local count: 11782]:
  1283. # uxReturn_16 = PHI <uxReturn_41(20), uxReturn_43(23)>
  1284. # DEBUG uxReturn => uxReturn_16
  1285. # DEBUG BEGIN_STMT
  1286. # DEBUG BEGIN_STMT
  1287. uxReturn_46 = uxReturn_16 & 16777215;
  1288. # DEBUG uxReturn => uxReturn_46
  1289. <bb 25> [local count: 23563]:
  1290. # uxReturn_17 = PHI <uxReturn_15(17), uxReturn_46(24)>
  1291. # DEBUG uxReturn => uxReturn_17
  1292. # DEBUG BEGIN_STMT
  1293. # DEBUG BEGIN_STMT
  1294. # DEBUG BEGIN_STMT
  1295. return uxReturn_17;
  1296. }
  1297. xEventGroupCreate ()
  1298. {
  1299. struct EventGroup_t * pxEventBits;
  1300. struct List_t * _1;
  1301. <bb 2> [local count: 1073741824]:
  1302. # DEBUG BEGIN_STMT
  1303. # DEBUG BEGIN_STMT
  1304. pxEventBits_5 = pvPortMalloc (28);
  1305. # DEBUG pxEventBits => pxEventBits_5
  1306. # DEBUG BEGIN_STMT
  1307. if (pxEventBits_5 != 0B)
  1308. goto <bb 3>; [53.47%]
  1309. else
  1310. goto <bb 4>; [46.53%]
  1311. <bb 3> [local count: 574129754]:
  1312. # DEBUG BEGIN_STMT
  1313. pxEventBits_5->uxEventBits = 0;
  1314. # DEBUG BEGIN_STMT
  1315. _1 = &pxEventBits_5->xTasksWaitingForBits;
  1316. vListInitialise (_1);
  1317. # DEBUG BEGIN_STMT
  1318. <bb 4> [local count: 1073741824]:
  1319. # DEBUG BEGIN_STMT
  1320. # DEBUG BEGIN_STMT
  1321. return pxEventBits_5;
  1322. }