event_groups.c.068i.whole-program 44 KB

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