callgraph: prvSampleTimeNow/73 (prvSampleTimeNow) @05e5b0e0 Type: function definition analyzed Visibility: next sharing asm name: 25 References: xLastTime.6551/42 (read)xLastTime.6551/42 (write) Referring: Function prvSampleTimeNow/73 is inline copy in prvTimerTask/22 Clone of prvSampleTimeNow/25 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: xTaskGetTickCount/41 (1073741824 (estimated locally),10000.02 per call) prvSwitchTimerLists/28 (354334802 (estimated locally),3300.01 per call) prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05e55d20 Type: function definition analyzed Visibility: References: Referring: Function prvInitialiseNewTimer.constprop/72 is inline copy in xTimerCreate/11 Clone of prvInitialiseNewTimer/12 Availability: local Function flags: count:574129754 (estimated locally) local optimize_size Called by: xTimerCreate/11 (inlined) (574129754 (estimated locally),0.53 per call) Calls: prvCheckForValidListAndQueue/29 (189463535 (estimated locally),0.18 per call) vListInitialiseItem/53 (189463535 (estimated locally),0.18 per call) prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05e55a80 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: pxOverflowTimerList/7 (read) Referring: Function prvInsertTimerInActiveList.part.0/57 is inline copy in prvInsertTimerInActiveList/26 Availability: local Function flags: count:177167400 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvInsertTimerInActiveList/26 (inlined) (177167400 (estimated locally),0.16 per call) Calls: vListInsert/44 (177167400 (estimated locally),0.16 per call) xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f5cc40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerPendFunctionCallFromISR/33 (1073741824 (estimated locally),1.00 per call) xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call) Calls: xQueueGenericSend/55 (xQueueGenericSend) @05f5cb60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerPendFunctionCall/34 (123389 (estimated locally),0.53 per call) xTimerGenericCommand/13 (57875 (estimated locally),0.16 per call) xTimerGenericCommand/13 (29814 (estimated locally),0.08 per call) Calls: xTaskGetSchedulerState/54 (xTaskGetSchedulerState) @05f5ca80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call) Calls: vListInitialiseItem/53 (vListInitialiseItem) @05f5c8c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseNewTimer.constprop/72 (189463535 (estimated locally),0.18 per call) Calls: pvPortMalloc/52 (pvPortMalloc) @05f5c700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerCreate/11 (1073741824 (estimated locally),1.00 per call) Calls: vPortExitCritical/51 (vPortExitCritical) @05f5c460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call) Calls: vQueueAddToRegistry/50 (vQueueAddToRegistry) @05f5c380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCheckForValidListAndQueue/29 (100070816 (estimated locally),0.09 per call) Calls: xQueueGenericCreate/49 (xQueueGenericCreate) @05f5c2a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) Calls: vListInitialise/48 (vListInitialise) @05f5c0e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) Calls: vPortEnterCritical/47 (vPortEnterCritical) @05f5c000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call) Calls: xQueueReceive/46 (xQueueReceive) @05f36e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (19321729474 (estimated locally),179947.93 per call) Calls: vPortFree/45 (vPortFree) @05f36d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (66280295 (estimated locally),617.28 per call) Calls: vListInsert/44 (vListInsert) @05f369a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInsertTimerInActiveList/26 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (177167400 (estimated locally),0.16 per call) Calls: uxListRemove/43 (uxListRemove) @05f36700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (536970861 (estimated locally),5000.94 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call) Calls: xTaskGetTickCount/41 (xTaskGetTickCount) @05f36380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvSampleTimeNow/73 (1073741824 (estimated locally),10000.02 per call) prvSampleTimeNow/25 (1004246918 (estimated locally),9352.79 per call) Calls: vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05f361c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (600704865 (estimated locally),5594.51 per call) Calls: xTaskResumeAll/39 (xTaskResumeAll) @05f360e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),3300.01 per call) prvProcessTimerOrBlockTask/23 (600704865 (estimated locally),5594.51 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),1105.50 per call) Calls: vTaskSuspendAll/38 (vTaskSuspendAll) @05f36000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call) Calls: xTaskCreate/37 (xTaskCreate) @05f2aee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerCreateTimerTask/10 (78363 (estimated locally),0.53 per call) Calls: vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05f2aa80 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Calls: uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05f2a7e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Calls: xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05f2a540 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call) xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05f2a0e0 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call) vTimerSetTimerID/32 (vTimerSetTimerID) @05f268c0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (pvTimerGetTimerID) @05f26ee0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (xTimerIsTimerActive) @05f26b60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05f267e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTimerQueue/8 (read)xActiveTimerList1/4 (addr)xActiveTimerList2/5 (addr)pxCurrentTimerList/6 (write)xActiveTimerList1/4 (addr)pxOverflowTimerList/7 (write)xActiveTimerList2/5 (addr)xTimerQueue/8 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvInitialiseNewTimer.constprop/72 (189463535 (estimated locally),0.18 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call) Calls: vPortExitCritical/51 (1073741824 (estimated locally),1.00 per call) vQueueAddToRegistry/50 (100070816 (estimated locally),0.09 per call) xQueueGenericCreate/49 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vPortEnterCritical/47 (1073741824 (estimated locally),1.00 per call) prvSwitchTimerLists/28 (prvSwitchTimerLists) @05f26460 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write) Referring: Availability: local Function flags: count:118111600 (estimated locally) body local optimize_size Called by: prvSampleTimeNow/73 (354334802 (estimated locally),3300.01 per call) prvSampleTimeNow/25 (331401483 (estimated locally),3086.42 per call) Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call) prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05f260e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTimerQueue/8 (read) Referring: Function prvProcessReceivedCommands/27 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: xQueueReceive/46 (19321729474 (estimated locally),179947.93 per call) vPortFree/45 (66280295 (estimated locally),617.28 per call) prvInsertTimerInActiveList/26 (189802709 (estimated locally),1767.68 per call) prvReloadTimer/20 (33140147 (estimated locally),308.64 per call) prvInsertTimerInActiveList/26 (200849425 (estimated locally),1870.56 per call) prvSampleTimeNow/25 (inlined) (1004246918 (estimated locally),9352.79 per call) uxListRemove/43 (536970861 (estimated locally),5000.94 per call) Indirect call(100424661 (estimated locally),935.28 per call) Indirect call(7486204063 (estimated locally),69720.83 per call) prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05f1a7e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (189802709 (estimated locally),1767.68 per call) prvProcessReceivedCommands/27 (200849425 (estimated locally),1870.56 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call) Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (inlined) (177167400 (estimated locally),0.16 per call) prvSampleTimeNow/25 (prvSampleTimeNow) @05f1ad20 Type: function definition analyzed Visibility: prevailing_def_ironly previous sharing asm name: 73 References: xLastTime.6551/42 (read)xLastTime.6551/42 (write) Referring: Function prvSampleTimeNow/25 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1004246918 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (inlined) (1004246918 (estimated locally),9352.79 per call) Calls: prvSwitchTimerLists/28 (331401483 (estimated locally),3086.42 per call) xTaskGetTickCount/41 (1004246918 (estimated locally),9352.79 per call) prvGetNextExpireTime/24 (prvGetNextExpireTime) @05f1aa80 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read) Referring: Function prvGetNextExpireTime/24 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1073741824 (estimated locally) body local nonfreeing_fn optimize_size Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05f1a700 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read) Referring: Function prvProcessTimerOrBlockTask/23 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: xTaskResumeAll/39 (354334802 (estimated locally),3300.01 per call) xTaskResumeAll/39 (600704865 (estimated locally),5594.51 per call) vQueueWaitForMessageRestricted/40 (600704865 (estimated locally),5594.51 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),1105.50 per call) xTaskResumeAll/39 (118702158 (estimated locally),1105.50 per call) prvSampleTimeNow/73 (inlined) (1073741824 (estimated locally),10000.02 per call) vTaskSuspendAll/38 (1073741824 (estimated locally),10000.02 per call) prvTimerTask/22 (prvTimerTask) @05f1a2a0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. References: Referring: xTimerCreateTimerTask/10 (addr) Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: prvProcessReceivedCommands/27 (inlined) (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (inlined) (1073741824 (estimated locally),10000.02 per call) prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05f1a000 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),1105.50 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call) Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call) Indirect call(1073741824 (estimated locally),1.00 per call) prvReloadTimer/20 (prvReloadTimer) @05ec0540 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:118111600 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (33140147 (estimated locally),308.64 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call) Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call) Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed) pcTimerGetName/19 (pcTimerGetName) @05ec0ee0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05ec0b60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05ec07e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (vTimerSetReloadMode) @05ec0460 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) xTimerGetPeriod/15 (xTimerGetPeriod) @05ec00e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05f157e0 Type: function definition analyzed Visibility: externally_visible public References: xTimerTaskHandle/9 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGenericCommand/13 (xTimerGenericCommand) @05f151c0 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSendFromISR/56 (87689 (estimated locally),0.25 per call) xQueueGenericSend/55 (57875 (estimated locally),0.16 per call) xQueueGenericSend/55 (29814 (estimated locally),0.08 per call) xTaskGetSchedulerState/54 (87689 (estimated locally),0.25 per call) prvInitialiseNewTimer/12 (prvInitialiseNewTimer) @05f15a80 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: prevailing_def_ironly References: Referring: Availability: not_available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: xTimerCreate/11 (xTimerCreate) @05f15700 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvInitialiseNewTimer.constprop/72 (inlined) (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call) xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05f15460 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr) Referring: Availability: available Function flags: count:146556 (estimated locally) body optimize_size Called by: Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call) Clearing variable flags: Promotable global:pxCurrentTimerList (uid=6416) Promotable global:pxOverflowTimerList (uid=6417) Promotable global:xTimerQueue (uid=6418) Promotable global:xLastTime (uid=6551) Function name:prvSampleTimeNow/73: locals read: xLastTime locals written: xLastTime Function name:prvInitialiseNewTimer.constprop/72: locals read: locals written: Function name:prvInsertTimerInActiveList.part.0/57: locals read: pxOverflowTimerList locals written: Function name:vTimerSetTimerNumber/36: locals read: locals written: Function name:uxTimerGetTimerNumber/35: locals read: locals written: Function name:xTimerPendFunctionCall/34: locals read: xTimerQueue locals written: Function name:xTimerPendFunctionCallFromISR/33: locals read: xTimerQueue locals written: Function name:vTimerSetTimerID/32: locals read: locals written: Function name:pvTimerGetTimerID/31: locals read: locals written: Function name:xTimerIsTimerActive/30: locals read: locals written: Function name:prvCheckForValidListAndQueue/29: locals read: xTimerQueue locals written: pxCurrentTimerList pxOverflowTimerList xTimerQueue Function name:prvSwitchTimerLists/28: locals read: pxCurrentTimerList pxOverflowTimerList locals written: pxCurrentTimerList pxOverflowTimerList Function name:prvProcessReceivedCommands/27: locals read: xTimerQueue locals written: Function name:prvInsertTimerInActiveList/26: locals read: pxCurrentTimerList locals written: Function name:prvSampleTimeNow/25: locals read: xLastTime locals written: xLastTime Function name:prvGetNextExpireTime/24: locals read: pxCurrentTimerList locals written: Function name:prvProcessTimerOrBlockTask/23: locals read: pxOverflowTimerList xTimerQueue locals written: Function name:prvTimerTask/22: locals read: locals written: Function name:prvProcessExpiredTimer/21: locals read: pxCurrentTimerList locals written: Function name:prvReloadTimer/20: locals read: locals written: Function name:pcTimerGetName/19: locals read: locals written: Function name:xTimerGetExpiryTime/18: locals read: locals written: Function name:uxTimerGetReloadMode/17: locals read: locals written: Function name:vTimerSetReloadMode/16: locals read: locals written: Function name:xTimerGetPeriod/15: locals read: locals written: Function name:xTimerGetTimerDaemonTaskHandle/14: locals read: locals written: Function name:xTimerGenericCommand/13: locals read: xTimerQueue locals written: Function name:xTimerCreate/11: locals read: locals written: Function name:xTimerCreateTimerTask/10: locals read: xTimerQueue locals written: ordered call graph: reduced vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05f2aa80 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18c48 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Calls: uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05f2a7e0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18a28 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Calls: xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05f2a540 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18b08 References: xTimerQueue/8 (read) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call) xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05f2a0e0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18b88 References: xTimerQueue/8 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call) vTimerSetTimerID/32 (vTimerSetTimerID) @05f268c0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18c28 References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (pvTimerGetTimerID) @05f26ee0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18ba8 References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (xTimerIsTimerActive) @05f26b60 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18c68 References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) prvTimerTask/22 (prvTimerTask) @05f1a2a0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05d18b28 References: Referring: xTimerCreateTimerTask/10 (addr) Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: prvProcessReceivedCommands/27 (inlined) (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (inlined) (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (prvGetNextExpireTime) @05f1aa80 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18a48 References: pxCurrentTimerList/6 (read) Referring: Function prvGetNextExpireTime/24 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1073741824 (estimated locally) body local nonfreeing_fn optimize_size Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05f1a700 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18b48 References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read) Referring: Function prvProcessTimerOrBlockTask/23 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: xTaskResumeAll/39 (354334802 (estimated locally),3300.01 per call) xTaskResumeAll/39 (600704865 (estimated locally),5594.51 per call) vQueueWaitForMessageRestricted/40 (600704865 (estimated locally),5594.51 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),1105.50 per call) xTaskResumeAll/39 (118702158 (estimated locally),1105.50 per call) prvSampleTimeNow/73 (inlined) (1073741824 (estimated locally),10000.02 per call) vTaskSuspendAll/38 (1073741824 (estimated locally),10000.02 per call) prvSampleTimeNow/73 (prvSampleTimeNow) @05e5b0e0 Type: function definition analyzed Visibility: next sharing asm name: 25 Aux: @05d18dc8 References: xLastTime.6551/42 (read)xLastTime.6551/42 (write) Referring: Function prvSampleTimeNow/73 is inline copy in prvTimerTask/22 Clone of prvSampleTimeNow/25 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessTimerOrBlockTask/23 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: xTaskGetTickCount/41 (1073741824 (estimated locally),10000.02 per call) prvSwitchTimerLists/28 (354334802 (estimated locally),3300.01 per call) prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05f260e0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18ae8 References: xTimerQueue/8 (read) Referring: Function prvProcessReceivedCommands/27 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (inlined) (1073741824 (estimated locally),10000.02 per call) Calls: xQueueReceive/46 (19321729474 (estimated locally),179947.93 per call) vPortFree/45 (66280295 (estimated locally),617.28 per call) prvInsertTimerInActiveList/26 (189802709 (estimated locally),1767.68 per call) prvReloadTimer/20 (33140147 (estimated locally),308.64 per call) prvInsertTimerInActiveList/26 (200849425 (estimated locally),1870.56 per call) prvSampleTimeNow/25 (inlined) (1004246918 (estimated locally),9352.79 per call) uxListRemove/43 (536970861 (estimated locally),5000.94 per call) Indirect call(100424661 (estimated locally),935.28 per call) Indirect call(7486204063 (estimated locally),69720.83 per call) prvSampleTimeNow/25 (prvSampleTimeNow) @05f1ad20 Type: function definition analyzed Visibility: prevailing_def_ironly previous sharing asm name: 73 Aux: @05d18be8 References: xLastTime.6551/42 (read)xLastTime.6551/42 (write) Referring: Function prvSampleTimeNow/25 is inline copy in prvTimerTask/22 Availability: local Function flags: count:1004246918 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (inlined) (1004246918 (estimated locally),9352.79 per call) Calls: prvSwitchTimerLists/28 (331401483 (estimated locally),3086.42 per call) xTaskGetTickCount/41 (1004246918 (estimated locally),9352.79 per call) prvSwitchTimerLists/28 (prvSwitchTimerLists) @05f26460 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18da8 References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write) Referring: Availability: local Function flags: count:118111600 (estimated locally) body local optimize_size Called by: prvSampleTimeNow/73 (354334802 (estimated locally),3300.01 per call) prvSampleTimeNow/25 (331401483 (estimated locally),3086.42 per call) Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call) prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05f1a000 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18b68 References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),1105.50 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call) Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call) Indirect call(1073741824 (estimated locally),1.00 per call) prvReloadTimer/20 (prvReloadTimer) @05ec0540 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18d08 References: Referring: Availability: local Function flags: count:118111600 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (33140147 (estimated locally),308.64 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call) Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call) Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed) prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05f1a7e0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18aa8 References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (189802709 (estimated locally),1767.68 per call) prvProcessReceivedCommands/27 (200849425 (estimated locally),1870.56 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call) Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (inlined) (177167400 (estimated locally),0.16 per call) prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05e55a80 Type: function definition analyzed Visibility: prevailing_def_ironly artificial Aux: @05d18a08 References: pxOverflowTimerList/7 (read) Referring: Function prvInsertTimerInActiveList.part.0/57 is inline copy in prvInsertTimerInActiveList/26 Availability: local Function flags: count:177167400 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvInsertTimerInActiveList/26 (inlined) (177167400 (estimated locally),0.16 per call) Calls: vListInsert/44 (177167400 (estimated locally),0.16 per call) pcTimerGetName/19 (pcTimerGetName) @05ec0ee0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18bc8 References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05ec0b60 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18d28 References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05ec07e0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d189e8 References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (vTimerSetReloadMode) @05ec0460 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18c08 References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) xTimerGetPeriod/15 (xTimerGetPeriod) @05ec00e0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18d68 References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05f157e0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18c88 References: xTimerTaskHandle/9 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGenericCommand/13 (xTimerGenericCommand) @05f151c0 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18ca8 References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSendFromISR/56 (87689 (estimated locally),0.25 per call) xQueueGenericSend/55 (57875 (estimated locally),0.16 per call) xQueueGenericSend/55 (29814 (estimated locally),0.08 per call) xTaskGetSchedulerState/54 (87689 (estimated locally),0.25 per call) xTimerCreate/11 (xTimerCreate) @05f15700 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18cc8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvInitialiseNewTimer.constprop/72 (inlined) (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call) prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05e55d20 Type: function definition analyzed Visibility: Aux: @05d18de8 References: Referring: Function prvInitialiseNewTimer.constprop/72 is inline copy in xTimerCreate/11 Clone of prvInitialiseNewTimer/12 Availability: local Function flags: count:574129754 (estimated locally) local optimize_size Called by: xTimerCreate/11 (inlined) (574129754 (estimated locally),0.53 per call) Calls: prvCheckForValidListAndQueue/29 (189463535 (estimated locally),0.18 per call) vListInitialiseItem/53 (189463535 (estimated locally),0.18 per call) xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05f15460 Type: function definition analyzed Visibility: externally_visible public Aux: @05d18ac8 References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr) Referring: Availability: available Function flags: count:146556 (estimated locally) body optimize_size Called by: Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call) prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05f267e0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @05d18ce8 References: xTimerQueue/8 (read)xActiveTimerList1/4 (addr)xActiveTimerList2/5 (addr)pxCurrentTimerList/6 (write)xActiveTimerList1/4 (addr)pxOverflowTimerList/7 (write)xActiveTimerList2/5 (addr)xTimerQueue/8 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvInitialiseNewTimer.constprop/72 (189463535 (estimated locally),0.18 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call) Calls: vPortExitCritical/51 (1073741824 (estimated locally),1.00 per call) vQueueAddToRegistry/50 (100070816 (estimated locally),0.09 per call) xQueueGenericCreate/49 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vPortEnterCritical/47 (1073741824 (estimated locally),1.00 per call) Function name:prvCheckForValidListAndQueue/29: locals read: xTimerQueue locals written: pxCurrentTimerList pxOverflowTimerList xTimerQueue globals read: ALL globals written: ALL Function name:xTimerCreateTimerTask/10: locals read: xTimerQueue locals written: globals read: ALL globals written: ALL Function name:prvInitialiseNewTimer.constprop.0/72: locals read: locals written: globals read: ALL globals written: ALL Function name:xTimerCreate/11: locals read: locals written: globals read: ALL globals written: ALL Function name:xTimerGenericCommand/13: locals read: xTimerQueue locals written: globals read: ALL globals written: ALL Function name:xTimerGetTimerDaemonTaskHandle/14: locals read: locals written: globals read: globals written: Function name:xTimerGetPeriod/15: locals read: locals written: globals read: globals written: Function name:vTimerSetReloadMode/16: locals read: locals written: globals read: ALL globals written: ALL Function name:uxTimerGetReloadMode/17: locals read: locals written: globals read: ALL globals written: ALL Function name:xTimerGetExpiryTime/18: locals read: locals written: globals read: globals written: Function name:pcTimerGetName/19: locals read: locals written: globals read: globals written: Function name:prvInsertTimerInActiveList.part.0/57: locals read: pxOverflowTimerList locals written: globals read: ALL globals written: ALL Function name:prvInsertTimerInActiveList/26: locals read: pxCurrentTimerList locals written: globals read: ALL globals written: ALL Function name:prvReloadTimer/20: locals read: locals written: globals read: ALL globals written: ALL Function name:prvProcessExpiredTimer/21: locals read: pxCurrentTimerList locals written: globals read: ALL globals written: ALL Function name:prvSwitchTimerLists/28: locals read: pxCurrentTimerList pxOverflowTimerList locals written: pxCurrentTimerList pxOverflowTimerList globals read: ALL globals written: ALL Function name:prvSampleTimeNow/25: locals read: xLastTime locals written: xLastTime globals read: ALL globals written: ALL Function name:prvProcessReceivedCommands/27: locals read: xTimerQueue locals written: globals read: ALL globals written: ALL Function name:prvSampleTimeNow/73: locals read: xLastTime locals written: xLastTime globals read: ALL globals written: ALL Function name:prvProcessTimerOrBlockTask/23: locals read: pxOverflowTimerList xTimerQueue locals written: globals read: ALL globals written: ALL Function name:prvGetNextExpireTime/24: locals read: pxCurrentTimerList locals written: globals read: pxCurrentTimerList globals written: Function name:prvTimerTask/22: locals read: locals written: globals read: ALL globals written: Function name:xTimerIsTimerActive/30: locals read: locals written: globals read: ALL globals written: ALL Function name:pvTimerGetTimerID/31: locals read: locals written: globals read: ALL globals written: ALL Function name:vTimerSetTimerID/32: locals read: locals written: globals read: ALL globals written: ALL Function name:xTimerPendFunctionCallFromISR/33: locals read: xTimerQueue locals written: globals read: ALL globals written: ALL Function name:xTimerPendFunctionCall/34: locals read: xTimerQueue locals written: globals read: ALL globals written: ALL Function name:uxTimerGetTimerNumber/35: locals read: locals written: globals read: globals written: Function name:vTimerSetTimerNumber/36: locals read: locals written: globals read: globals written: prvInsertTimerInActiveList.part.0 (struct Timer_t * const pxTimer) { BaseType_t xProcessTimerNow; const TickType_t xNextExpiryTime; const TickType_t xTimeNow; const TickType_t xCommandTime; struct List_t * pxOverflowTimerList.14_1; struct ListItem_t * _3; [local count: 1073741824]: # DEBUG D#6 s=> xNextExpiryTime # DEBUG xNextExpiryTime => D#6 # DEBUG D#5 s=> xTimeNow # DEBUG xTimeNow => D#5 # DEBUG D#4 s=> xCommandTime # DEBUG xCommandTime => D#4 [local count: 1073741824]: # DEBUG BEGIN_STMT pxOverflowTimerList.14_1 = pxOverflowTimerList; _3 = &pxTimer_2(D)->xTimerListItem; vListInsert (pxOverflowTimerList.14_1, _3); [local count: 1073741824]: # xProcessTimerNow_4 = PHI <0(2)> # DEBUG xProcessTimerNow => xProcessTimerNow_4 # DEBUG BEGIN_STMT return xProcessTimerNow_4; } vTimerSetTimerNumber (struct tmrTimerControl * xTimer, UBaseType_t uxTimerNumber) { [local count: 1073741824]: # DEBUG BEGIN_STMT MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D); return; } uxTimerGetTimerNumber (struct tmrTimerControl * xTimer) { UBaseType_t _3; [local count: 1073741824]: # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber; return _3; } xTimerPendFunctionCall (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct DaemonTaskMessage_t xMessage; struct QueueDefinition * xTimerQueue.26_1; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTimerQueue.26_1 = xTimerQueue; if (xTimerQueue.26_1 == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_14 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage.xMessageID = -1; # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D); # DEBUG BEGIN_STMT xReturn_12 = xQueueGenericSend (xTimerQueue.26_1, &xMessage, xTicksToWait_10(D), 0); # DEBUG xReturn => xReturn_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage ={v} {CLOBBER}; return xReturn_12; } xTimerPendFunctionCallFromISR (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, BaseType_t * pxHigherPriorityTaskWoken) { BaseType_t xReturn; struct DaemonTaskMessage_t xMessage; struct QueueDefinition * xTimerQueue.25_1; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage.xMessageID = -2; # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D); # DEBUG BEGIN_STMT xTimerQueue.25_1 = xTimerQueue; xReturn_12 = xQueueGenericSendFromISR (xTimerQueue.25_1, &xMessage, pxHigherPriorityTaskWoken_10(D), 0); # DEBUG xReturn => xReturn_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage ={v} {CLOBBER}; return xReturn_12; } vTimerSetTimerID (struct tmrTimerControl * xTimer, void * pvNewID) { uint32_t ulNewBASEPRI; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_7 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID = pvNewID_4(D); # DEBUG BEGIN_STMT vPortExitCritical (); return; } pvTimerGetTimerID (struct tmrTimerControl * const xTimer) { uint32_t ulNewBASEPRI; void * pvReturn; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_6 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT pvReturn_4 = MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID; # DEBUG pvReturn => pvReturn_4 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return pvReturn_4; } xTimerIsTimerActive (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; unsigned char _1; long int _2; unsigned char _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_3(D) # DEBUG BEGIN_STMT if (xTimer_3(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus; _4 = _1 & 1; _2 = (long int) _4; # DEBUG xReturn => _2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return _2; } prvCheckForValidListAndQueue () { struct QueueDefinition * xTimerQueue.17_1; struct QueueDefinition * _2; [local count: 1073741824]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT xTimerQueue.17_1 = xTimerQueue; if (xTimerQueue.17_1 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 187153200]: # DEBUG BEGIN_STMT vListInitialise (&xActiveTimerList1); # DEBUG BEGIN_STMT vListInitialise (&xActiveTimerList2); # DEBUG BEGIN_STMT pxCurrentTimerList = &xActiveTimerList1; # DEBUG BEGIN_STMT pxOverflowTimerList = &xActiveTimerList2; # DEBUG BEGIN_STMT _2 = xQueueGenericCreate (10, 16, 0); xTimerQueue = _2; # DEBUG BEGIN_STMT if (_2 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 100070816]: # DEBUG BEGIN_STMT vQueueAddToRegistry (_2, "TmrQ"); [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); return; } prvSwitchTimerLists () { TickType_t xNextExpireTime; struct xLIST_ITEM * _1; struct List_t * pxCurrentTimerList.11_2; long unsigned int _3; struct List_t * pxOverflowTimerList.12_4; struct List_t * pxCurrentTimerList.11_7; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _1 = pxCurrentTimerList.11_2->xListEnd.pxNext; xNextExpireTime_10 = _1->xItemValue; # DEBUG xNextExpireTime => xNextExpireTime_10 # DEBUG BEGIN_STMT prvProcessExpiredTimer (xNextExpireTime_10, 4294967295); [local count: 1073741824]: # DEBUG BEGIN_STMT pxCurrentTimerList.11_2 = pxCurrentTimerList; _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems; if (_3 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # pxCurrentTimerList.11_7 = PHI # DEBUG BEGIN_STMT # DEBUG pxTemp => pxCurrentTimerList.11_7 # DEBUG BEGIN_STMT pxOverflowTimerList.12_4 = pxOverflowTimerList; pxCurrentTimerList = pxOverflowTimerList.12_4; # DEBUG BEGIN_STMT pxOverflowTimerList = pxCurrentTimerList.11_7; return; } prvProcessReceivedCommands () { uint32_t ulNewBASEPRI; TickType_t xTimeNow; BaseType_t xTimerListsWereSwitched; struct Timer_t * pxTimer; struct DaemonTaskMessage_t xMessage; long int _1; void (*) (void *, uint32_t) _2; void * _3; long unsigned int _4; long int _5; struct xLIST * _6; struct ListItem_t * _7; long int _8; unsigned char _9; unsigned char _10; long unsigned int _11; long unsigned int _12; long unsigned int _13; long int _15; unsigned char _16; long unsigned int _17; long unsigned int _18; long unsigned int _19; unsigned char _21; void (*) (struct tmrTimerControl *) _22; unsigned char _23; unsigned char _24; unsigned char _25; unsigned char _26; long unsigned int _27; long unsigned int _30; unsigned char _31; unsigned char _33; struct QueueDefinition * xTimerQueue.16_34; long int _35; unsigned char _63; unsigned char _65; [local count: 10436763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 177477686]: # DEBUG BEGIN_STMT _1 = xMessage.xMessageID; if (_1 < 0) goto ; [41.00%] else goto ; [59.00%] [local count: 72765851]: # DEBUG BEGIN_STMT # DEBUG pxCallback => &xMessage.u.xCallbackParameters # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pxCallbackFunction; _3 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pvParameter1; _4 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].ulParameter2; _2 (_3, _4); [local count: 177477686]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _5 = xMessage.xMessageID; if (_5 >= 0) goto ; [5.50%] else goto ; [94.50%] [local count: 167716413]: goto ; [100.00%] [local count: 9761273]: # DEBUG BEGIN_STMT pxTimer_47 = xMessage.u.xTimerParameters.pxTimer; # DEBUG pxTimer => pxTimer_47 # DEBUG BEGIN_STMT _6 = pxTimer_47->xTimerListItem.pvContainer; if (_6 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 5219353]: # DEBUG BEGIN_STMT _7 = &pxTimer_47->xTimerListItem; uxListRemove (_7); [local count: 9761273]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); # DEBUG xTimeNow => xTimeNow_50 # DEBUG BEGIN_STMT _8 = xMessage.xMessageID; switch (_8) [20.00%], case 1 ... 2: [20.00%], case 3: [20.00%], case 4: [20.00%], case 5: [20.00%], case 6 ... 7: [20.00%], case 8: [20.00%], case 9: [20.00%]> [local count: 1952255]: : goto ; [100.00%] [local count: 1952255]: # pxTimer_14 = PHI # xTimeNow_46 = PHI : # DEBUG BEGIN_STMT _9 = pxTimer_14->ucStatus; _10 = _9 | 1; pxTimer_14->ucStatus = _10; # DEBUG BEGIN_STMT _11 = xMessage.u.xTimerParameters.xMessageValue; _12 = pxTimer_14->xTimerPeriodInTicks; _13 = _11 + _12; _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); if (_15 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 976127]: # DEBUG BEGIN_STMT _16 = pxTimer_14->ucStatus; _65 = _16 & 4; if (_65 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 322122]: # DEBUG BEGIN_STMT _17 = xMessage.u.xTimerParameters.xMessageValue; _18 = pxTimer_14->xTimerPeriodInTicks; _19 = _17 + _18; prvReloadTimer (pxTimer_14, _19, xTimeNow_46); goto ; [100.00%] [local count: 654005]: # DEBUG BEGIN_STMT _21 = _16 & 254; pxTimer_14->ucStatus = _21; [local count: 976127]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _22 = pxTimer_14->pxCallbackFunction; _22 (pxTimer_14); goto ; [100.00%] [local count: 1952255]: # pxTimer_20 = PHI : # DEBUG BEGIN_STMT _23 = pxTimer_20->ucStatus; _24 = _23 & 254; pxTimer_20->ucStatus = _24; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1952255]: # pxTimer_44 = PHI # xTimeNow_67 = PHI : # DEBUG BEGIN_STMT _25 = pxTimer_44->ucStatus; _26 = _25 | 1; pxTimer_44->ucStatus = _26; # DEBUG BEGIN_STMT _27 = xMessage.u.xTimerParameters.xMessageValue; pxTimer_44->xTimerPeriodInTicks = _27; # DEBUG BEGIN_STMT if (_27 == 0) goto ; [5.50%] else goto ; [94.50%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_64 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 1844881]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _30 = _27 + xTimeNow_67; prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1952255]: # pxTimer_56 = PHI : # DEBUG BEGIN_STMT _31 = pxTimer_56->ucStatus; _63 = _31 & 2; if (_63 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 644244]: # DEBUG BEGIN_STMT vPortFree (pxTimer_56); goto ; [100.00%] [local count: 1308011]: # DEBUG BEGIN_STMT _33 = _31 & 254; pxTimer_56->ucStatus = _33; [local count: 7701644]: [local count: 18138407]: [local count: 20090662]: : [local count: 187807075]: # DEBUG BEGIN_STMT xTimerQueue.16_34 = xTimerQueue; _35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); if (_35 != 0) goto ; [94.50%] else goto ; [5.50%] [local count: 10329389]: xMessage ={v} {CLOBBER}; xTimerListsWereSwitched ={v} {CLOBBER}; return; } prvInsertTimerInActiveList (struct Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime) { BaseType_t xProcessTimerNow; long unsigned int _1; long unsigned int _2; struct List_t * pxCurrentTimerList.15_3; struct ListItem_t * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG xProcessTimerNow => 0 # DEBUG BEGIN_STMT pxTimer_8(D)->xTimerListItem.xItemValue = xNextExpiryTime_9(D); # DEBUG BEGIN_STMT pxTimer_8(D)->xTimerListItem.pvOwner = pxTimer_8(D); # DEBUG BEGIN_STMT if (xNextExpiryTime_9(D) <= xTimeNow_12(D)) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _1 = xTimeNow_12(D) - xCommandTime_13(D); _2 = pxTimer_8(D)->xTimerPeriodInTicks; if (_1 >= _2) goto ; [67.00%] else goto ; [33.00%] [local count: 177167400]: # DEBUG D#1 => xNextExpiryTime_9(D) # DEBUG D#2 => xTimeNow_12(D) # DEBUG D#3 => xCommandTime_13(D) xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D)); goto ; [100.00%] [local count: 536870913]: # DEBUG BEGIN_STMT if (xTimeNow_12(D) < xCommandTime_13(D)) goto ; [67.00%] else goto ; [33.00%] [local count: 359703511]: if (xNextExpiryTime_9(D) >= xCommandTime_13(D)) goto ; [50.00%] else goto ; [50.00%] [local count: 357019157]: # DEBUG BEGIN_STMT pxCurrentTimerList.15_3 = pxCurrentTimerList; _4 = &pxTimer_8(D)->xTimerListItem; vListInsert (pxCurrentTimerList.15_3, _4); [local count: 1073741824]: # xProcessTimerNow_5 = PHI # DEBUG xProcessTimerNow => xProcessTimerNow_5 # DEBUG BEGIN_STMT return xProcessTimerNow_5; } prvSampleTimeNow (BaseType_t * const pxTimerListsWereSwitched) { static TickType_t xLastTime = 0; TickType_t xTimeNow; long unsigned int xLastTime.9_1; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTimeNow_5 = xTaskGetTickCount (); # DEBUG xTimeNow => xTimeNow_5 # DEBUG BEGIN_STMT xLastTime.9_1 = xLastTime; if (xLastTime.9_1 > xTimeNow_5) goto ; [33.00%] else goto ; [67.00%] [local count: 354334802]: # DEBUG BEGIN_STMT prvSwitchTimerLists (); # DEBUG BEGIN_STMT *pxTimerListsWereSwitched_6(D) = 1; goto ; [100.00%] [local count: 719407023]: # DEBUG BEGIN_STMT *pxTimerListsWereSwitched_6(D) = 0; [local count: 1073741824]: # DEBUG BEGIN_STMT xLastTime = xTimeNow_5; # DEBUG BEGIN_STMT return xTimeNow_5; } prvGetNextExpireTime (BaseType_t * const pxListWasEmpty) { TickType_t xNextExpireTime; struct List_t * pxCurrentTimerList.3_1; long unsigned int _2; struct xLIST_ITEM * _3; long int iftmp.2_5; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTimerList.3_1 = pxCurrentTimerList; _2 ={v} pxCurrentTimerList.3_1->uxNumberOfItems; if (_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: [local count: 1073741824]: # iftmp.2_5 = PHI <1(2), 0(3)> *pxListWasEmpty_7(D) = iftmp.2_5; # DEBUG BEGIN_STMT if (iftmp.2_5 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _3 = pxCurrentTimerList.3_1->xListEnd.pxNext; xNextExpireTime_9 = _3->xItemValue; # DEBUG xNextExpireTime => xNextExpireTime_9 [local count: 1073741824]: # xNextExpireTime_4 = PHI # DEBUG xNextExpireTime => xNextExpireTime_4 # DEBUG BEGIN_STMT return xNextExpireTime_4; } prvProcessTimerOrBlockTask (const TickType_t xNextExpireTime, BaseType_t xListWasEmpty) { BaseType_t xTimerListsWereSwitched; TickType_t xTimeNow; long int xTimerListsWereSwitched.5_1; struct List_t * pxOverflowTimerList.7_2; long unsigned int _3; struct QueueDefinition * xTimerQueue.8_4; long unsigned int _5; long int _6; [local count: 1073741823]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched); # DEBUG xTimeNow => xTimeNow_12 # DEBUG BEGIN_STMT xTimerListsWereSwitched.5_1 = xTimerListsWereSwitched; if (xTimerListsWereSwitched.5_1 == 0) goto ; [67.00%] else goto ; [33.00%] [local count: 719407022]: # DEBUG BEGIN_STMT if (xListWasEmpty_14(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 359703511]: if (xTimeNow_12 >= xNextExpireTime_15(D)) goto ; [33.00%] else goto ; [67.00%] [local count: 118702158]: # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT prvProcessExpiredTimer (xNextExpireTime_15(D), xTimeNow_12); goto ; [100.00%] [local count: 600704864]: # DEBUG BEGIN_STMT if (xListWasEmpty_14(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 300352432]: # DEBUG BEGIN_STMT pxOverflowTimerList.7_2 = pxOverflowTimerList; _3 ={v} pxOverflowTimerList.7_2->uxNumberOfItems; if (_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 150176216]: [local count: 600704864]: # xListWasEmpty_7 = PHI # DEBUG xListWasEmpty => xListWasEmpty_7 # DEBUG BEGIN_STMT xTimerQueue.8_4 = xTimerQueue; _5 = xNextExpireTime_15(D) - xTimeNow_12; vQueueWaitForMessageRestricted (xTimerQueue.8_4, _5, xListWasEmpty_7); # DEBUG BEGIN_STMT _6 = xTaskResumeAll (); if (_6 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 300352432]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 354334802]: # DEBUG BEGIN_STMT xTaskResumeAll (); [local count: 1073741824]: xTimerListsWereSwitched ={v} {CLOBBER}; return; } prvTimerTask (void * pvParameters) { BaseType_t xListWasEmpty; TickType_t xNextExpireTime; long int xListWasEmpty.1_1; [local count: 107374]: [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty); # DEBUG xNextExpireTime => xNextExpireTime_5 # DEBUG BEGIN_STMT xListWasEmpty.1_1 = xListWasEmpty; prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1); # DEBUG BEGIN_STMT prvProcessReceivedCommands (); # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] } prvProcessExpiredTimer (const TickType_t xNextExpireTime, const TickType_t xTimeNow) { struct Timer_t * const pxTimer; struct List_t * pxCurrentTimerList.13_1; struct xLIST_ITEM * _2; struct ListItem_t * _3; unsigned char _4; unsigned char _5; void (*) (struct tmrTimerControl *) _6; unsigned char _16; [local count: 1073741824]: # DEBUG BEGIN_STMT pxCurrentTimerList.13_1 = pxCurrentTimerList; _2 = pxCurrentTimerList.13_1->xListEnd.pxNext; pxTimer_9 = _2->pvOwner; # DEBUG pxTimer => pxTimer_9 # DEBUG BEGIN_STMT _3 = &pxTimer_9->xTimerListItem; uxListRemove (_3); # DEBUG BEGIN_STMT _4 = pxTimer_9->ucStatus; _16 = _4 & 4; if (_16 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 354334802]: # DEBUG BEGIN_STMT prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D)); goto ; [100.00%] [local count: 719407023]: # DEBUG BEGIN_STMT _5 = _4 & 254; pxTimer_9->ucStatus = _5; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _6 = pxTimer_9->pxCallbackFunction; _6 (pxTimer_9); return; } prvReloadTimer (struct Timer_t * const pxTimer, TickType_t xExpiredTime, const TickType_t xTimeNow) { long unsigned int _1; void (*) (struct tmrTimerControl *) _2; long unsigned int _3; long unsigned int _4; long int _5; [local count: 118111600]: # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _1 = pxTimer_10(D)->xTimerPeriodInTicks; xExpiredTime_13 = _1 + xExpiredTime_6; # DEBUG xExpiredTime => xExpiredTime_13 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = pxTimer_10(D)->pxCallbackFunction; _2 (pxTimer_10(D)); [local count: 1073741824]: # xExpiredTime_6 = PHI # DEBUG xExpiredTime => xExpiredTime_6 # DEBUG BEGIN_STMT _3 = pxTimer_10(D)->xTimerPeriodInTicks; _4 = _3 + xExpiredTime_6; _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); if (_5 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: return; } pcTimerGetName (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; const char * _3; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_1(D)].pcTimerName; return _3; } xTimerGetExpiryTime (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; TickType_t xReturn; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerListItem.xItemValue; # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT return xReturn_3; } uxTimerGetReloadMode (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; UBaseType_t uxReturn; unsigned char _1; unsigned char _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_3(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_3(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus; _4 = _1 & 4; if (_4 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 61694]: # DEBUG BEGIN_STMT # DEBUG uxReturn => 1 [local count: 123389]: # uxReturn_2 = PHI <0(5), 1(6)> # DEBUG uxReturn => uxReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return uxReturn_2; } vTimerSetReloadMode (struct tmrTimerControl * xTimer, const UBaseType_t uxAutoReload) { uint32_t ulNewBASEPRI; unsigned char _1; unsigned char _2; unsigned char _3; unsigned char _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_6(D) # DEBUG BEGIN_STMT if (xTimer_6(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_13 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (uxAutoReload_9(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 61694]: # DEBUG BEGIN_STMT _1 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus; _2 = _1 | 4; MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _2; goto ; [100.00%] [local count: 61694]: # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus; _4 = _3 & 251; MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _4; [local count: 123389]: # DEBUG BEGIN_STMT vPortExitCritical (); return; } xTimerGetPeriod (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; TickType_t _3; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerPeriodInTicks; return _3; } xTimerGetTimerDaemonTaskHandle () { uint32_t ulNewBASEPRI; struct tskTaskControlBlock * xTimerTaskHandle.24_1; [local count: 357913]: # DEBUG BEGIN_STMT xTimerTaskHandle.24_1 = xTimerTaskHandle; if (xTimerTaskHandle.24_1 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_3 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xTimerTaskHandle.24_1; } xTimerGenericCommand (struct tmrTimerControl * xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; struct DaemonTaskMessage_t xMessage; BaseType_t xReturn; struct QueueDefinition * xTimerQueue.20_1; long int _2; struct QueueDefinition * xTimerQueue.21_3; struct QueueDefinition * xTimerQueue.22_4; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_7(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_24 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTimerQueue.20_1 = xTimerQueue; if (xTimerQueue.20_1 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 175378]: # DEBUG BEGIN_STMT xMessage.xMessageID = xCommandID_9(D); # DEBUG BEGIN_STMT xMessage.u.xTimerParameters.xMessageValue = xOptionalValue_11(D); # DEBUG BEGIN_STMT xMessage.u.xTimerParameters.pxTimer = xTimer_7(D); # DEBUG BEGIN_STMT if (xCommandID_9(D) <= 5) goto ; [50.00%] else goto ; [50.00%] [local count: 87689]: # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 == 2) goto ; [34.00%] else goto ; [66.00%] [local count: 29814]: # DEBUG BEGIN_STMT xTimerQueue.21_3 = xTimerQueue; xReturn_22 = xQueueGenericSend (xTimerQueue.21_3, &xMessage, xTicksToWait_20(D), 0); # DEBUG xReturn => xReturn_22 goto ; [100.00%] [local count: 57875]: # DEBUG BEGIN_STMT xTimerQueue.22_4 = xTimerQueue; xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0); # DEBUG xReturn => xReturn_19 goto ; [100.00%] [local count: 87689]: # DEBUG BEGIN_STMT xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0); # DEBUG xReturn => xReturn_16 [local count: 250539]: # xReturn_5 = PHI <0(5), xReturn_16(10), xReturn_19(9), xReturn_22(8)> # DEBUG xReturn => xReturn_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage ={v} {CLOBBER}; return xReturn_5; } xTimerCreate (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction) { struct Timer_t * pxNewTimer; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxNewTimer_4 = pvPortMalloc (44); # DEBUG pxNewTimer => pxNewTimer_4 # DEBUG BEGIN_STMT if (pxNewTimer_4 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 574129754]: # DEBUG BEGIN_STMT pxNewTimer_4->ucStatus = 0; # DEBUG BEGIN_STMT prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); [local count: 1073741824]: # DEBUG BEGIN_STMT return pxNewTimer_4; } xTimerCreateTimerTask () { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct QueueDefinition * xTimerQueue.0_1; [local count: 146556]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT prvCheckForValidListAndQueue (); # DEBUG BEGIN_STMT xTimerQueue.0_1 = xTimerQueue; if (xTimerQueue.0_1 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 78363]: # DEBUG BEGIN_STMT xReturn_5 = xTaskCreate (prvTimerTask, "Tmr Svc", 180, 0B, 2, &xTimerTaskHandle); # DEBUG xReturn => xReturn_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xReturn_5 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 107374]: # DEBUG xReturn => NULL # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_7 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 39182]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_5; }