Histogram: debug_printf (char * msg) { u8 len; u8 i; struct va_list argptr; char str[256]; unsigned int _1; int _2; char _3; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __builtin_va_start (&argptr, 0); # DEBUG BEGIN_STMT vsprintf (&str, msg_8(D), argptr); # DEBUG BEGIN_STMT __builtin_va_end (&argptr); # DEBUG BEGIN_STMT _1 = strlen (&str); len_11 = (u8) _1; # DEBUG len => len_11 # DEBUG BEGIN_STMT # DEBUG i => 0 goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _2 = (int) i_4; _3 = str[_2]; put_char (_3); # DEBUG BEGIN_STMT i_15 = i_4 + 1; # DEBUG i => i_15 [local count: 1073741824]: # i_4 = PHI <0(2), i_15(3)> # DEBUG i => i_4 # DEBUG BEGIN_STMT if (i_4 < len_11) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: str ={v} {CLOBBER}; argptr ={v} {CLOBBER}; return; } get_line (u32 max_len) { unsigned int _1; char * _2; int _3; unsigned int _4; char _5; unsigned int _6; unsigned int _7; char _8; unsigned int _9; unsigned int _10; char _11; unsigned int _12; char * _13; int _14; unsigned int _15; unsigned int _16; char _17; unsigned int _18; char _19; unsigned int _20; unsigned int _21; unsigned int _22; unsigned int _23; char _24; unsigned int _25; unsigned int _26; int _27; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = gb.cmd_idx; _2 = &gb.cmd_buf[_1]; _3 = get_char (_2); if (_3 == 1) goto ; [20.97%] else goto ; [79.03%] [local count: 848578164]: # DEBUG BEGIN_STMT _4 = gb.cmd_idx; _5 = gb.cmd_buf[_4]; switch (_5) [25.00%], case 0: [25.00%], case 8: [25.00%], case 10: [25.00%], case 13: [25.00%]> [local count: 212144541]: : # DEBUG BEGIN_STMT gb.cmd_idx = 0; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 212144541]: : # DEBUG BEGIN_STMT debug_printf ("\r\n"); # DEBUG BEGIN_STMT _6 = gb.cmd_idx; gb.cmd_buf[_6] = 0; # DEBUG BEGIN_STMT gb.cmd_idx = 0; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 212144541]: : # DEBUG BEGIN_STMT if (_4 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 70007698]: # DEBUG BEGIN_STMT _7 = _4 + 4294967295; gb.cmd_idx = _7; # DEBUG BEGIN_STMT debug_printf ("\b \b"); goto ; [100.00%] [local count: 212144541]: : # DEBUG BEGIN_STMT _8 = _5 + 224; if (_8 <= 94) goto ; [33.00%] else goto ; [67.00%] [local count: 70007698]: # DEBUG BEGIN_STMT put_char (_5); # DEBUG BEGIN_STMT _9 = gb.cmd_idx; _10 = _9 + 1; gb.cmd_idx = _10; goto ; [100.00%] [local count: 142136842]: # DEBUG BEGIN_STMT _11 = _5 + 80; if (_11 <= 24) goto ; [33.00%] else goto ; [67.00%] [local count: 46905158]: # DEBUG BEGIN_STMT _12 = _4 + 1; gb.cmd_idx = _12; # DEBUG BEGIN_STMT _13 = &gb.cmd_buf[_12]; _14 = get_char (_13); if (_14 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 23452579]: # DEBUG BEGIN_STMT _15 = gb.cmd_idx; _16 = _15 + 4294967295; _17 = gb.cmd_buf[_16]; put_char (_17); # DEBUG BEGIN_STMT _18 = gb.cmd_idx; _19 = gb.cmd_buf[_18]; put_char (_19); # DEBUG BEGIN_STMT _20 = gb.cmd_idx; _21 = _20 + 1; gb.cmd_idx = _21; goto ; [100.00%] [local count: 23452579]: # DEBUG BEGIN_STMT _22 = gb.cmd_idx; _23 = _22 + 4294967295; _24 = gb.cmd_buf[_23]; put_char (_24); [local count: 424289081]: # DEBUG BEGIN_STMT _25 = gb.cmd_idx; if (_25 >= max_len_46(D)) goto ; [34.00%] else goto ; [66.00%] [local count: 144258288]: # DEBUG BEGIN_STMT _26 = max_len_46(D) + 4294967295; gb.cmd_buf[_26] = 0; # DEBUG BEGIN_STMT gb.cmd_idx = 0; # DEBUG BEGIN_STMT [local count: 1073741823]: # _27 = PHI <1(2), 0(4), 0(5), 0(15), 1(14)> return _27; } put_char (char ch) { [local count: 1073741824]: # DEBUG BEGIN_STMT Lpuart_Uart_Ip_SyncSend (0, &ch, 1); return; } get_char (char * ch) { unsigned int _1; unsigned int _2; char _3; unsigned int _4; unsigned int _5; unsigned int _6; int _7; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = gb.ubuf_head; _2 = gb.ubuf_tail; if (_1 == _2) goto ; [20.97%] else goto ; [79.03%] [local count: 848578164]: # DEBUG BEGIN_STMT _3 = gb.ubuf[_1]; *ch_10(D) = _3; # DEBUG BEGIN_STMT _4 = gb.ubuf_head; _5 = _4 + 1; _6 = _5 & 255; gb.ubuf_head = _6; # DEBUG BEGIN_STMT [local count: 1073741824]: # _7 = PHI <1(2), 0(3)> return _7; } Gvar_init () { [local count: 1073741824]: # DEBUG BEGIN_STMT gb.ubuf_head = 0; # DEBUG BEGIN_STMT gb.ubuf_tail = 0; return; } PrintLogo () { [local count: 1073741824]: # DEBUG BEGIN_STMT debug_printf ("\n\r\n"); # DEBUG BEGIN_STMT debug_printf ("================================================\r\n"); # DEBUG BEGIN_STMT debug_printf (" MR S32K344 APPLICATION\n"); # DEBUG BEGIN_STMT debug_printf (" Version %04X\n", 1); # DEBUG BEGIN_STMT debug_printf (" Author : sihong89@gmail.com\n"); # DEBUG BEGIN_STMT debug_printf (" Last compiled : %s %s\n", "Oct 27 2021", "13:34:26"); # DEBUG BEGIN_STMT debug_printf ("================================================\r\n"); return; } UART0_RX_Callback (uint32 instance, void * driverState, Lpuart_Uart_Ip_EventType event, void * userData) { unsigned int _1; char _2; unsigned int _3; unsigned int _4; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (event_6(D) == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 354334802]: # DEBUG BEGIN_STMT _1 = gb.ubuf_tail; _2 = gb.utemp[0]; gb.ubuf[_1] = _2; # DEBUG BEGIN_STMT _3 = _1 + 1; _4 = _3 & 255; gb.ubuf_tail = _4; # DEBUG BEGIN_STMT Lpuart_Uart_Ip_SetRxBuffer (instance_10(D), &gb.utemp, 1); [local count: 1073741824]: return; } board_init () { [local count: 1073741824]: # DEBUG BEGIN_STMT Lpuart_Uart_Ip_AsyncReceive (0, &gb.utemp, 1); # DEBUG BEGIN_STMT led_onoff (0); return; } system_reset () { [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG addr => 1076297728B # DEBUG BEGIN_STMT MEM[(u32 *)1076297728B] = 1; return; } Pit_Callback () { long unsigned int _1; long unsigned int _2; unsigned int _3; unsigned int _4; int _5; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = gb.tmr_cnt; _2 = _1 + 1; gb.tmr_cnt = _2; # DEBUG BEGIN_STMT _3 = gb.led_cnt; _4 = _3 + 1; gb.led_cnt = _4; # DEBUG BEGIN_STMT if (_4 > 1000) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT gb.led_cnt = 0; # DEBUG BEGIN_STMT _5 = gb.led_flag; if (_5 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 182536110]: # DEBUG BEGIN_STMT led_onoff (0); goto ; [100.00%] [local count: 354334802]: # DEBUG BEGIN_STMT led_onoff (1); [local count: 1073741824]: return; } Adc1EndOfChainNoti () { volatile u16 data; short unsigned int _1; short unsigned int _2; int _3; short unsigned int data.7_4; int _5; int _6; short unsigned int _7; unsigned int _8; short unsigned int _9; short unsigned int _10; short unsigned int _11; int _12; short unsigned int data.8_13; int _14; int _15; short unsigned int _16; unsigned int _17; short unsigned int _18; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = Adc_Sar_Ip_GetConvData (1, 35); data ={v} _1; # DEBUG BEGIN_STMT _2 = gb.adc[1].idx; _3 = (int) _2; data.7_4 ={v} data; gb.adc[1].raw[_3] = data.7_4; # DEBUG BEGIN_STMT _5 = _3 + 1; _6 = _5 % 10; _7 = (short unsigned int) _6; gb.adc[1].idx = _7; # DEBUG BEGIN_STMT _8 = get_average (&gb.adc[1].raw, 10); _9 = (short unsigned int) _8; gb.adc[1].avr = _9; # DEBUG BEGIN_STMT _10 = Adc_Sar_Ip_GetConvData (1, 36); data ={v} _10; # DEBUG BEGIN_STMT _11 = gb.adc[0].idx; _12 = (int) _11; data.8_13 ={v} data; gb.adc[0].raw[_12] = data.8_13; # DEBUG BEGIN_STMT _14 = _12 + 1; _15 = _14 % 10; _16 = (short unsigned int) _15; gb.adc[0].idx = _16; # DEBUG BEGIN_STMT _17 = get_average (&gb.adc[0].raw, 10); _18 = (short unsigned int) _17; gb.adc[0].avr = _18; # DEBUG BEGIN_STMT Adc_Sar_Ip_StartConversion (1, 0); return; } Adc0EndOfChainNoti () { volatile u16 data; short unsigned int _1; short unsigned int _2; int _3; short unsigned int data.5_4; int _5; int _6; short unsigned int _7; unsigned int _8; short unsigned int _9; short unsigned int _10; short unsigned int _11; int _12; short unsigned int data.6_13; int _14; int _15; short unsigned int _16; unsigned int _17; short unsigned int _18; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = Adc_Sar_Ip_GetConvData (0, 33); data ={v} _1; # DEBUG BEGIN_STMT _2 = gb.adc[2].idx; _3 = (int) _2; data.5_4 ={v} data; gb.adc[2].raw[_3] = data.5_4; # DEBUG BEGIN_STMT _5 = _3 + 1; _6 = _5 % 10; _7 = (short unsigned int) _6; gb.adc[2].idx = _7; # DEBUG BEGIN_STMT _8 = get_average (&gb.adc[2].raw, 10); _9 = (short unsigned int) _8; gb.adc[2].avr = _9; # DEBUG BEGIN_STMT _10 = Adc_Sar_Ip_GetConvData (0, 47); data ={v} _10; # DEBUG BEGIN_STMT _11 = gb.adc[3].idx; _12 = (int) _11; data.6_13 ={v} data; gb.adc[3].raw[_12] = data.6_13; # DEBUG BEGIN_STMT _14 = _12 + 1; _15 = _14 % 10; _16 = (short unsigned int) _15; gb.adc[3].idx = _16; # DEBUG BEGIN_STMT _17 = get_average (&gb.adc[3].raw, 10); _18 = (short unsigned int) _17; gb.adc[3].avr = _18; # DEBUG BEGIN_STMT Adc_Sar_Ip_StartConversion (0, 0); return; } get_average (u16 * val, int len) { int i; int sum; int max; int min; unsigned int i.0_1; unsigned int _2; u16 * _3; short unsigned int _4; int _5; int _10; int _11; int _12; int _13; int _18; u32 _21; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG min => 65536 # DEBUG BEGIN_STMT # DEBUG max => -65537 # DEBUG BEGIN_STMT # DEBUG sum => 0 # DEBUG BEGIN_STMT # DEBUG i => 0 goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT i.0_1 = (unsigned int) i_17; _2 = i.0_1 * 2; _3 = val_23(D) + _2; _4 = *_3; _5 = (int) _4; sum_24 = _5 + sum_16; # DEBUG sum => sum_24 # DEBUG BEGIN_STMT max_9 = MAX_EXPR <_5, max_15>; # DEBUG max => max_9 # DEBUG BEGIN_STMT min_20 = MIN_EXPR <_5, min_14>; # DEBUG min => min_20 # DEBUG BEGIN_STMT i_25 = i_17 + 1; # DEBUG i => i_25 [local count: 1073741824]: # min_14 = PHI <65536(2), min_20(3)> # max_15 = PHI <-65537(2), max_9(3)> # sum_16 = PHI <0(2), sum_24(3)> # i_17 = PHI <0(2), i_25(3)> # DEBUG i => i_17 # DEBUG sum => sum_16 # DEBUG max => max_15 # DEBUG min => min_14 # DEBUG BEGIN_STMT if (i_17 < len_19(D)) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # min_6 = PHI # max_7 = PHI # sum_8 = PHI # DEBUG BEGIN_STMT _10 = sum_8 - max_7; _11 = _10 - min_6; _12 = len_19(D) + -2; _13 = _11 / _12; # DEBUG ret => (u16) _13 # DEBUG BEGIN_STMT _18 = _13 & 65535; _21 = (u32) _18; return _21; } set_pwm (u32 ch, u32 ratio) { u32 val; u32 channel; unsigned int _1; unsigned char _2; short unsigned int _3; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT channel_7 = pwm_idx[ch_6(D)]; # DEBUG channel => channel_7 # DEBUG BEGIN_STMT if (ratio_8(D) > 99) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT if (ratio_8(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 268435456]: # DEBUG BEGIN_STMT _1 = ratio_8(D) * 240; val_9 = _1 / 100; # DEBUG val => val_9 [local count: 1073741824]: # val_4 = PHI <240(2), 0(3), val_9(4)> # DEBUG val => val_4 # DEBUG BEGIN_STMT _2 = (unsigned char) channel_7; _3 = (short unsigned int) val_4; Flexio_Pwm_Ip_UpdatePeriodDuty (0, _2, 240, _3); return; } led_onoff (int flag) { [local count: 1073741824]: # DEBUG BEGIN_STMT if (flag_2(D) == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 365072220]: # DEBUG BEGIN_STMT Siul2_Dio_Ip_WritePin (1076434692B, 13, 0); goto ; [100.00%] [local count: 708669605]: # DEBUG BEGIN_STMT Siul2_Dio_Ip_WritePin (1076434692B, 13, 1); [local count: 1073741824]: # DEBUG BEGIN_STMT gb.led_flag = flag_2(D); return; }