Analyzing function: prvInsertTimerInActiveList.part.0/57 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 4 2 3 ;; 4 succs { 2 } ;; 2 succs { 3 } ;; 3 succs { 1 } Analyzing function body size: prvInsertTimerInActiveList.part.0 IPA function summary for prvInsertTimerInActiveList.part.0/57 inlinable global time: 15.000000 self size: 7 global size: 0 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: vListInsert/44 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 Analyzing function: vTimerSetTimerNumber/36 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: vTimerSetTimerNumber IPA function summary for vTimerSetTimerNumber/36 inlinable global time: 3.000000 self size: 4 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.500000, time:0.500000 size:3.500000, time:2.500000, executed if:(not inlined) calls: Analyzing function: uxTimerGetTimerNumber/35 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: uxTimerGetTimerNumber IPA function summary for uxTimerGetTimerNumber/35 inlinable global time: 3.000000 self size: 4 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 288] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 288] changed) calls: Analyzing function: xTimerPendFunctionCall/34 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: xTimerPendFunctionCall IPA function summary for xTimerPendFunctionCall/34 inlinable global time: 16.555202 self size: 21 global size: 0 min size: 0 self stack: 16 global stack: 16 size:12.000000, time:7.465300 size:3.000000, time:1.069400, executed if:(not inlined) calls: xQueueGenericSend/55 function body not available loop depth: 0 freq:0.53 size: 6 time: 15 op1 is compile time invariant op3 is compile time invariant Analyzing function: xTimerPendFunctionCallFromISR/33 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: xTimerPendFunctionCallFromISR IPA function summary for xTimerPendFunctionCallFromISR/33 inlinable global time: 22.000000 self size: 14 global size: 0 min size: 0 self stack: 16 global stack: 16 size:5.000000, time:5.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: xQueueGenericSendFromISR/56 function body not available loop depth: 0 freq:1.00 size: 6 time: 15 op1 is compile time invariant op3 is compile time invariant Analyzing function: vTimerSetTimerID/32 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: vTimerSetTimerID IPA function summary for vTimerSetTimerID/32 inlinable global time: 16.624602 self size: 13 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined) size:0.500000, time:0.267350, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/51 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/47 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: pvTimerGetTimerID/31 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: pvTimerGetTimerID IPA function summary for pvTimerGetTimerID/31 inlinable global time: 16.624602 self size: 13 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined) size:0.500000, time:0.267350, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/51 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/47 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: xTimerIsTimerActive/30 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: xTimerIsTimerActive IPA function summary for xTimerIsTimerActive/30 inlinable global time: 17.159302 self size: 14 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined) size:1.500000, time:0.802050, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/51 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/47 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: prvCheckForValidListAndQueue/29 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; 2 succs { 3 5 } ;; 3 succs { 4 5 } ;; 4 succs { 5 } ;; 5 succs { 1 } Analyzing function body size: prvCheckForValidListAndQueue IPA function summary for prvCheckForValidListAndQueue/29 inlinable global time: 33.264679 self size: 25 global size: 0 min size: 0 self stack: 0 global stack: 0 size:8.000000, time:3.871500 size:3.000000, time:2.000000, executed if:(not inlined) calls: vPortExitCritical/51 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vQueueAddToRegistry/50 function body not available loop depth: 0 freq:0.09 size: 3 time: 12 op1 is compile time invariant xQueueGenericCreate/49 function body not available loop depth: 0 freq:0.17 size: 5 time: 14 op0 is compile time invariant op1 is compile time invariant op2 is compile time invariant vListInitialise/48 function body not available loop depth: 0 freq:0.17 size: 2 time: 11 op0 is compile time invariant vListInitialise/48 function body not available loop depth: 0 freq:0.17 size: 2 time: 11 op0 is compile time invariant vPortEnterCritical/47 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: prvSwitchTimerLists/28 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; ;; Loop 1 ;; header 4, latch 3 ;; depth 1, outer 0 ;; nodes: 4 3 ;; 2 succs { 4 } ;; 3 succs { 4 } ;; 4 succs { 3 5 } ;; 5 succs { 1 } Analyzing function body size: prvSwitchTimerLists IPA function summary for prvSwitchTimerLists/28 inlinable global time: 154.636365 self size: 15 global size: 0 min size: 0 self stack: 0 global stack: 0 size:9.000000, time:55.545455 size:3.000000, time:2.000000, executed if:(not inlined) calls: prvProcessExpiredTimer/21 function not considered for inlining loop depth: 1 freq:8.09 size: 3 time: 12 op1 is compile time invariant Analyzing function: prvProcessReceivedCommands/27 ;; 6 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 29 6 7 8 28 9 10 11 12 13 14 15 16 17 27 18 19 20 21 22 23 24 25 26 ;; ;; Loop 2 ;; header 17, latch 27 ;; depth 1, outer 0 ;; nodes: 17 27 ;; ;; Loop 1 ;; header 23, latch 22 ;; depth 1, outer 0 ;; nodes: 23 22 20 13 9 21 18 14 8 6 7 5 3 4 25 24 29 28 15 19 11 12 10 ;; ;; Loop 5 ;; header 24, latch 28 ;; depth 2, outer 1 ;; nodes: 24 28 8 6 7 5 3 4 25 29 ;; ;; Loop 4 ;; header 25, latch 29 ;; depth 3, outer 5 ;; nodes: 25 29 5 3 4 ;; 2 succs { 23 } ;; 3 succs { 4 5 } ;; 4 succs { 5 } ;; 5 succs { 6 29 } ;; 29 succs { 25 } ;; 6 succs { 7 8 } ;; 7 succs { 8 } ;; 8 succs { 28 9 14 15 19 } ;; 28 succs { 24 } ;; 9 succs { 10 22 } ;; 10 succs { 11 12 } ;; 11 succs { 13 } ;; 12 succs { 13 } ;; 13 succs { 22 } ;; 14 succs { 22 } ;; 15 succs { 16 18 } ;; 16 succs { 17 } ;; 17 succs { 27 } ;; 27 succs { 17 } ;; 18 succs { 22 } ;; 19 succs { 20 21 } ;; 20 succs { 22 } ;; 21 succs { 22 } ;; 22 succs { 23 } ;; 23 succs { 24 } ;; 24 succs { 25 } ;; 25 succs { 3 26 } ;; 26 succs { 1 } Analyzing function body size: prvProcessReceivedCommands IPA function summary for prvProcessReceivedCommands/27 inlinable global time: 589.511443 self size: 112 global size: 0 min size: 0 self stack: 20 global stack: 20 size:73.000000, time:192.498507 size:3.000000, time:1.979424, executed if:(not inlined) calls: xQueueReceive/46 function body not available loop depth: 3 freq:17.99 size: 5 time: 14 op1 is compile time invariant op2 is compile time invariant vPortFree/45 function body not available loop depth: 1 freq:0.06 size: 2 time: 11 prvInsertTimerInActiveList/26 function not considered for inlining loop depth: 1 freq:0.18 size: 5 time: 14 prvReloadTimer/20 function not considered for inlining loop depth: 1 freq:0.03 size: 4 time: 13 prvInsertTimerInActiveList/26 function not considered for inlining loop depth: 1 freq:0.19 size: 6 time: 15 prvSampleTimeNow/25 function not considered for inlining loop depth: 2 freq:0.94 size: 3 time: 12 op0 is compile time invariant uxListRemove/43 function body not available loop depth: 2 freq:0.50 size: 2 time: 11 indirect call loop depth: 1 freq:0.09 size: 4 time: 16 indirect call loop depth: 3 freq:6.97 size: 5 time: 17 Analyzing function: prvInsertTimerInActiveList/26 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 ;; 2 succs { 3 5 } ;; 3 succs { 8 4 } ;; 4 succs { 8 } ;; 5 succs { 6 7 } ;; 6 succs { 8 7 } ;; 7 succs { 8 } ;; 8 succs { 1 } Analyzing function body size: prvInsertTimerInActiveList IPA function summary for prvInsertTimerInActiveList/26 inlinable global time: 15.972500 self size: 22 global size: 0 min size: 0 self stack: 0 global stack: 0 size:2.000000, time:1.332500 size:4.000000, time:3.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed || op2 changed) size:3.000000, time:1.500000, nonconst if:(op2 changed || op3 changed) size:2.000000, time:0.670000, nonconst if:(op1 changed || op3 changed) size:0.500000, time:0.250000, executed if:(not inlined), nonconst if:(op0[ref offset: 192] changed) && (not inlined) size:0.500000, time:0.250000, nonconst if:(op0[ref offset: 192] changed) size:2.000000, time:1.000000, nonconst if:(op2 changed || op3 changed || op0[ref offset: 192] changed) calls: vListInsert/44 function body not available loop depth: 0 freq:0.33 size: 3 time: 12 prvInsertTimerInActiveList.part.0/57 function not considered for inlining loop depth: 0 freq:0.16 size: 3 time: 12callee size: 3 stack: 0 Analyzing function: prvSampleTimeNow/25 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; 2 succs { 3 4 } ;; 3 succs { 5 } ;; 4 succs { 5 } ;; 5 succs { 1 } Analyzing function body size: prvSampleTimeNow IPA function summary for prvSampleTimeNow/25 inlinable global time: 21.300000 self size: 12 global size: 0 min size: 0 self stack: 0 global stack: 0 size:5.000000, time:4.500000 size:4.000000, time:2.500000, executed if:(not inlined) calls: prvSwitchTimerLists/28 function not considered for inlining loop depth: 0 freq:0.33 size: 1 time: 10callee size: 7 stack: 0 xTaskGetTickCount/41 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 Analyzing function: prvGetNextExpireTime/24 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 ;; 2 succs { 4 3 } ;; 3 succs { 4 } ;; 4 succs { 5 6 } ;; 5 succs { 6 } ;; 6 succs { 1 } Analyzing function body size: prvGetNextExpireTime IPA function summary for prvGetNextExpireTime/24 inlinable global time: 10.000000 self size: 12 global size: 0 min size: 0 self stack: 0 global stack: 0 size:8.500000, time:7.500000 size:3.500000, time:2.500000, executed if:(not inlined) calls: Analyzing function: prvProcessTimerOrBlockTask/23 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 10 11 12 13 ;; 2 succs { 3 12 } ;; 3 succs { 4 6 } ;; 4 succs { 5 6 } ;; 5 succs { 13 } ;; 6 succs { 7 10 } ;; 7 succs { 10 8 } ;; 8 succs { 10 } ;; 10 succs { 11 13 } ;; 11 succs { 13 } ;; 12 succs { 13 } ;; 13 succs { 1 } Analyzing function body size: prvProcessTimerOrBlockTask IPA function summary for prvProcessTimerOrBlockTask/23 inlinable global time: 53.483675 self size: 38 global size: 0 min size: 0 self stack: 4 global stack: 4 size:10.000000, time:6.076975 size:3.000000, time:2.000000, executed if:(not inlined) size:4.000000, time:2.458900, nonconst if:(op1 changed) size:2.000000, time:0.670000, executed if:(op1 == 0) size:4.000000, time:1.118900, executed if:(op1 != 0) calls: xTaskResumeAll/39 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 xTaskResumeAll/39 function body not available loop depth: 0 freq:0.56 size: 2 time: 11 vQueueWaitForMessageRestricted/40 function body not available loop depth: 0 freq:0.56 size: 4 time: 13 prvProcessExpiredTimer/21 function not considered for inlining loop depth: 0 freq:0.11 size: 3 time: 12 predicate: (op1 == 0) xTaskResumeAll/39 function body not available loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op1 == 0) prvSampleTimeNow/25 function not considered for inlining loop depth: 0 freq:1.00 size: 3 time: 12callee size: 6 stack: 0 op0 is compile time invariant vTaskSuspendAll/38 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: prvTimerTask/22 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; ;; Loop 1 ;; header 3, latch 4 ;; depth 1, outer 0 ;; nodes: 3 4 ;; 2 succs { 3 } ;; 3 succs { 4 } ;; 4 succs { 3 } Analyzing function body size: prvTimerTask IPA function summary for prvTimerTask/22 inlinable global time: 350000.594727 self size: 10 global size: 0 min size: 0 self stack: 4 global stack: 4 size:1.000000, time:10000.016983 size:2.000000, time:0.000000, executed if:(not inlined) calls: prvProcessReceivedCommands/27 function not considered for inlining loop depth: 1 freq:10000.02 size: 1 time: 10callee size:56 stack:20 prvProcessTimerOrBlockTask/23 function not considered for inlining loop depth: 1 freq:10000.02 size: 3 time: 12callee size:19 stack: 4 prvGetNextExpireTime/24 function not considered for inlining loop depth: 1 freq:10000.02 size: 3 time: 12callee size: 6 stack: 0 op0 is compile time invariant Analyzing function: prvProcessExpiredTimer/21 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; 2 succs { 3 4 } ;; 3 succs { 5 } ;; 4 succs { 5 } ;; 5 succs { 1 } Analyzing function body size: prvProcessExpiredTimer IPA function summary for prvProcessExpiredTimer/21 inlinable global time: 42.630000 self size: 23 global size: 0 min size: 0 self stack: 0 global stack: 0 size:10.000000, time:9.340000 size:3.000000, time:2.000000, executed if:(not inlined) calls: prvReloadTimer/20 function not considered for inlining loop depth: 0 freq:0.33 size: 4 time: 13 uxListRemove/43 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 indirect call loop depth: 0 freq:1.00 size: 4 time: 16 Analyzing function: prvReloadTimer/20 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; ;; Loop 1 ;; header 4, latch 3 ;; depth 1, outer 0 ;; nodes: 4 3 ;; 2 succs { 4 } ;; 3 succs { 4 } ;; 4 succs { 3 5 } ;; 5 succs { 1 } Analyzing function body size: prvReloadTimer IPA function summary for prvReloadTimer/20 inlinable global time: 328.454547 self size: 20 global size: 0 min size: 0 self stack: 0 global stack: 0 size:5.500000, time:48.000000 size:4.500000, time:14.636364, executed if:(not inlined) calls: prvInsertTimerInActiveList/26 function not considered for inlining loop depth: 1 freq:9.09 size: 6 time: 15callee size:11 stack: 0 op0 change 10.990000% of time op2 change 10.990000% of time indirect call loop depth: 1 freq:8.09 size: 4 time: 16 Analyzing function: pcTimerGetName/19 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: pcTimerGetName IPA function summary for pcTimerGetName/19 inlinable global time: 5.600001 self size: 11 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: xTimerGetExpiryTime/18 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: xTimerGetExpiryTime IPA function summary for xTimerGetExpiryTime/18 inlinable global time: 5.600001 self size: 11 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: uxTimerGetReloadMode/17 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 8 5 6 7 ;; ;; Loop 1 ;; header 4, latch 8 ;; depth 1, outer 0 ;; nodes: 4 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 8 } ;; 8 succs { 4 } ;; 5 succs { 7 6 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: uxTimerGetReloadMode IPA function summary for uxTimerGetReloadMode/17 inlinable global time: 18.228702 self size: 16 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined) size:3.500000, time:1.871450, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/51 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/47 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: vTimerSetReloadMode/16 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 9 5 6 7 8 ;; ;; Loop 1 ;; header 4, latch 9 ;; depth 1, outer 0 ;; nodes: 4 9 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 9 } ;; 9 succs { 4 } ;; 5 succs { 6 7 } ;; 6 succs { 8 } ;; 7 succs { 8 } ;; 8 succs { 1 } Analyzing function body size: vTimerSetReloadMode IPA function summary for vTimerSetReloadMode/16 inlinable global time: 18.763389 self size: 20 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.069400, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:1.000000, time:0.267348, executed if:(op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.534696, executed if:(op1 == 0) && (op0 != 0B) size:1.000000, time:0.267348, executed if:(op1 != 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.534696, executed if:(op1 != 0) && (op0 != 0B) size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/51 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/47 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: xTimerGetPeriod/15 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: xTimerGetPeriod IPA function summary for xTimerGetPeriod/15 inlinable global time: 5.600001 self size: 11 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: xTimerGetTimerDaemonTaskHandle/14 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: xTimerGetTimerDaemonTaskHandle IPA function summary for xTimerGetTimerDaemonTaskHandle/14 inlinable global time: 5.900001 self size: 11 global size: 0 min size: 0 self stack: 0 global stack: 0 size:8.000000, time:4.500001 size:3.000000, time:1.399999, executed if:(not inlined) calls: Analyzing function: xTimerGenericCommand/13 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 12 5 6 7 8 9 10 11 ;; ;; Loop 1 ;; header 4, latch 12 ;; depth 1, outer 0 ;; nodes: 4 12 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 12 } ;; 12 succs { 4 } ;; 5 succs { 6 11 } ;; 6 succs { 7 10 } ;; 7 succs { 8 9 } ;; 8 succs { 11 } ;; 9 succs { 11 } ;; 10 succs { 11 } ;; 11 succs { 1 } Analyzing function body size: xTimerGenericCommand IPA function summary for xTimerGenericCommand/13 inlinable global time: 20.230048 self size: 42 global size: 0 min size: 0 self stack: 16 global stack: 16 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:6.000000, time:3.570004, executed if:(op0 != 0B) size:2.000000, time:0.980004, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:4.000000, time:0.735003, executed if:(op1 <= 5) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: xQueueGenericSendFromISR/56 function body not available loop depth: 0 freq:0.25 size: 6 time: 15 predicate: (op1 > 5) && (op0 != 0B) op1 is compile time invariant op3 is compile time invariant xQueueGenericSend/55 function body not available loop depth: 0 freq:0.16 size: 6 time: 15 predicate: (op1 <= 5) && (op0 != 0B) op1 is compile time invariant op2 is compile time invariant op3 is compile time invariant xQueueGenericSend/55 function body not available loop depth: 0 freq:0.08 size: 6 time: 15 predicate: (op1 <= 5) && (op0 != 0B) op1 is compile time invariant op3 is compile time invariant xTaskGetSchedulerState/54 function body not available loop depth: 0 freq:0.25 size: 2 time: 11 predicate: (op1 <= 5) && (op0 != 0B) Analyzing function: prvInitialiseNewTimer/12 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 8 5 6 7 ;; ;; Loop 1 ;; header 4, latch 8 ;; depth 1, outer 0 ;; nodes: 4 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 8 } ;; 8 succs { 4 } ;; 5 succs { 6 7 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: prvInitialiseNewTimer IPA function summary for prvInitialiseNewTimer/12 inlinable global time: 15.415032 self size: 22 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:3.000000, time:1.320005, executed if:(op1 != 0) && (not inlined) size:2.000000, time:0.660002, executed if:(op1 != 0) size:2.000000, time:0.660002, executed if:(op1 != 0), nonconst if:(op2 changed) && (op1 != 0) size:1.000000, time:0.165001, executed if:(op2 != 0) && (op1 != 0) && (not inlined) size:2.000000, time:0.330001, executed if:(op2 != 0) && (op1 != 0) size:5.000000, time:3.349994, executed if:(op1 == 0) calls: vListInitialiseItem/53 function body not available loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0) prvCheckForValidListAndQueue/29 function not considered for inlining loop depth: 0 freq:0.33 size: 1 time: 10callee size:12 stack: 0 predicate: (op1 != 0) Analyzing function: xTimerCreate/11 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 1 } Analyzing function body size: xTimerCreate IPA function summary for xTimerCreate/11 inlinable global time: 25.089900 self size: 16 global size: 0 min size: 0 self stack: 0 global stack: 0 size:3.000000, time:2.534700 size:3.000000, time:2.000000, executed if:(not inlined) calls: prvInitialiseNewTimer/12 function not considered for inlining loop depth: 0 freq:0.53 size: 7 time: 16callee size:11 stack: 0 pvPortMalloc/52 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant Analyzing function: xTimerCreateTimerTask/10 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 4 5 6 8 7 ;; ;; Loop 1 ;; header 6, latch 8 ;; depth 1, outer 0 ;; nodes: 6 8 ;; 2 succs { 4 5 } ;; 4 succs { 5 7 } ;; 5 succs { 6 } ;; 6 succs { 8 } ;; 8 succs { 6 } ;; 7 succs { 1 } Analyzing function body size: xTimerCreateTimerTask IPA function summary for xTimerCreateTimerTask/10 inlinable global time: 27.357181 self size: 22 global size: 0 min size: 0 self stack: 0 global stack: 0 size:10.000000, time:7.732635 size:3.000000, time:0.534703, executed if:(not inlined) calls: xTaskCreate/37 function body not available loop depth: 0 freq:0.53 size: 8 time: 17 op0 is compile time invariant op1 is compile time invariant op2 is compile time invariant op3 is compile time invariant op4 is compile time invariant op5 is compile time invariant prvCheckForValidListAndQueue/29 function not considered for inlining loop depth: 0 freq:1.00 size: 1 time: 10callee size:12 stack: 0 Symbol table: prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05dfbd20 Type: function definition analyzed Visibility: References: Referring: Clone of prvInitialiseNewTimer/12 Availability: local Function flags: count:160260 (estimated locally) local optimize_size Called by: xTimerCreate/11 (574129754 (estimated locally),0.53 per call) Calls: prvCheckForValidListAndQueue/29 (52886 (estimated locally),0.33 per call) vListInitialiseItem/53 (52886 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05dfba80 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: pxOverflowTimerList/7 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvInsertTimerInActiveList/26 (177167400 (estimated locally),0.16 per call) Calls: vListInsert/44 (1073741824 (estimated locally),1.00 per call) xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f06c40 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) @05f06b60 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) @05f06a80 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) @05f068c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call) Calls: pvPortMalloc/52 (pvPortMalloc) @05f06700 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) @05f06460 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) @05f06380 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) @05f062a0 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) @05f060e0 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) @05f06000 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) @05ed9e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (187807075 (estimated locally),17.99 per call) Calls: vPortFree/45 (vPortFree) @05ed9d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (644244 (estimated locally),0.06 per call) Calls: vListInsert/44 (vListInsert) @05ed99a0 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 (1073741824 (estimated locally),1.00 per call) Calls: uxListRemove/43 (uxListRemove) @05ed9700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (5219353 (estimated locally),0.50 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call) Calls: xLastTime.6551/42 (xLastTime) @05ef6120 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvSampleTimeNow/25 (read)prvSampleTimeNow/25 (write) Availability: available Varpool flags: initialized xTaskGetTickCount/41 (xTaskGetTickCount) @05ed9380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvSampleTimeNow/25 (1073741824 (estimated locally),1.00 per call) Calls: vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05ed91c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) Calls: xTaskResumeAll/39 (xTaskResumeAll) @05ed90e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),0.33 per call) prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call) Calls: vTaskSuspendAll/38 (vTaskSuspendAll) @05ed9000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call) Calls: xTaskCreate/37 (xTaskCreate) @05ecdee0 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) @05ecda80 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05ecd7e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05ecd540 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) @05ecd0e0 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) @05ec78c0 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) @05ec7ee0 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) @05ec7b60 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) @05ec77e0 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 (52886 (estimated locally),0.33 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) @05ec7460 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/25 (354334802 (estimated locally),0.33 per call) Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call) prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05ec70e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTimerQueue/8 (read) Referring: Availability: local Function flags: count:10436763 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call) Calls: xQueueReceive/46 (187807075 (estimated locally),17.99 per call) vPortFree/45 (644244 (estimated locally),0.06 per call) prvInsertTimerInActiveList/26 (1844881 (estimated locally),0.18 per call) prvReloadTimer/20 (322122 (estimated locally),0.03 per call) prvInsertTimerInActiveList/26 (1952255 (estimated locally),0.19 per call) prvSampleTimeNow/25 (9761273 (estimated locally),0.94 per call) uxListRemove/43 (5219353 (estimated locally),0.50 per call) Indirect call(976127 (estimated locally),0.09 per call) Indirect call(72765851 (estimated locally),6.97 per call) prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05ebb7e0 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 (1844881 (estimated locally),0.18 per call) prvProcessReceivedCommands/27 (1952255 (estimated locally),0.19 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 (177167400 (estimated locally),0.16 per call) prvSampleTimeNow/25 (prvSampleTimeNow) @05ebbd20 Type: function definition analyzed Visibility: prevailing_def_ironly References: xLastTime.6551/42 (read)xLastTime.6551/42 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (9761273 (estimated locally),0.94 per call) prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call) Calls: prvSwitchTimerLists/28 (354334802 (estimated locally),0.33 per call) xTaskGetTickCount/41 (1073741824 (estimated locally),1.00 per call) prvGetNextExpireTime/24 (prvGetNextExpireTime) @05ebba80 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: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call) Calls: prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05ebb700 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read) Referring: Availability: local Function flags: count:1073741823 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call) Calls: xTaskResumeAll/39 (354334802 (estimated locally),0.33 per call) xTaskResumeAll/39 (600704864 (estimated locally),0.56 per call) vQueueWaitForMessageRestricted/40 (600704864 (estimated locally),0.56 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),0.11 per call) xTaskResumeAll/39 (118702158 (estimated locally),0.11 per call) prvSampleTimeNow/25 (1073741823 (estimated locally),1.00 per call) vTaskSuspendAll/38 (1073741823 (estimated locally),1.00 per call) prvTimerTask/22 (prvTimerTask) @05ebb2a0 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 (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (1073741824 (estimated locally),10000.02 per call) prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05ebb000 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),0.11 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) @05e60540 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 (322122 (estimated locally),0.03 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) @05e60ee0 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) @05e60b60 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) @05e607e0 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) @05e60460 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) @05e600e0 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) @05eb67e0 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) @05eb61c0 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) @05eb6a80 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) @05eb6700 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 (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call) xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05eb6460 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) xTimerTaskHandle/9 (xTimerTaskHandle) @05eb0678 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: xTimerCreateTimerTask/10 (addr)xTimerGetTimerDaemonTaskHandle/14 (read) Availability: available Varpool flags: initialized xTimerQueue/8 (xTimerQueue) @05eb05e8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvProcessReceivedCommands/27 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCallFromISR/33 (read)prvCheckForValidListAndQueue/29 (write)xTimerCreateTimerTask/10 (read)prvCheckForValidListAndQueue/29 (read)prvProcessTimerOrBlockTask/23 (read)xTimerGenericCommand/13 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCall/34 (read) Availability: available Varpool flags: initialized pxOverflowTimerList/7 (pxOverflowTimerList) @05eb0558 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvInsertTimerInActiveList.part.0/57 (read)prvSwitchTimerLists/28 (write)prvProcessTimerOrBlockTask/23 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write) Availability: available Varpool flags: pxCurrentTimerList/6 (pxCurrentTimerList) @05eb04c8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvSwitchTimerLists/28 (write)prvProcessExpiredTimer/21 (read)prvInsertTimerInActiveList/26 (read)prvGetNextExpireTime/24 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write) Availability: available Varpool flags: xActiveTimerList2/5 (xActiveTimerList2) @05eb0438 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr) Availability: available Varpool flags: xActiveTimerList1/4 (xActiveTimerList1) @05eb03a8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr) Availability: available Varpool flags: 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; }