event_groups.c.048i.remove_symbols 43 KB

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