event_groups.c.079i.static-var 56 KB

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