From d6bc95c1ec71d487f26ee21d071934cec3f69ba0 Mon Sep 17 00:00:00 2001 From: S2-CHICKEN <67466148+ppk150@users.noreply.github.com> Date: Thu, 5 Sep 2024 21:20:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B6=A9=EC=A0=84=EC=8A=A4=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=EC=8A=A4=201=202=203=20=EC=9D=BC=20=EC=8B=9C=20?= =?UTF-8?q?=EB=AA=A8=ED=84=B0=ED=86=A0=ED=81=AC=200=20=20=EC=84=B8?= =?UTF-8?q?=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GW/Debug_FLASH/GW.elf | Bin 4685820 -> 4685820 bytes GW/Debug_FLASH/GW.map | 926 +-- GW/Debug_FLASH/GW.srec | 5636 ++++++++--------- .../src/BMS/Charging_Status.c.000i.cgraph | 106 +- .../src/BMS/Charging_Status.c.016i.visibility | 25 +- .../Charging_Status.c.017i.build_ssa_passes | 9 +- .../Charging_Status.c.022i.opt_local_passes | 14 +- .../BMS/Charging_Status.c.048i.remove_symbols | 32 +- .../BMS/Charging_Status.c.060i.targetclone | 10 +- .../Charging_Status.c.064i.free-fnsummary1 | 10 +- .../BMS/Charging_Status.c.068i.whole-program | 32 +- .../Charging_Status.c.069i.profile_estimate | 10 +- .../src/BMS/Charging_Status.c.070i.icf | 10 +- .../src/BMS/Charging_Status.c.071i.devirt | 32 +- .../src/BMS/Charging_Status.c.072i.cp | 34 +- .../src/BMS/Charging_Status.c.075i.fnsummary | 42 +- .../src/BMS/Charging_Status.c.076i.inline | 66 +- .../src/BMS/Charging_Status.c.077i.pure-const | 85 +- .../Charging_Status.c.078i.free-fnsummary2 | 10 +- .../src/BMS/Charging_Status.c.079i.static-var | 40 +- .../src/BMS/Charging_Status.c.080i.single-use | 10 +- .../src/BMS/Charging_Status.c.081i.comdats | 10 +- ...rging_Status.c.082i.materialize-all-clones | 10 +- GW/Debug_FLASH/src/BMS/Charging_Status.o | Bin 121036 -> 121040 bytes GW/src/BMS/Charging_Status.c | 2 +- 25 files changed, 3599 insertions(+), 3562 deletions(-) diff --git a/GW/Debug_FLASH/GW.elf b/GW/Debug_FLASH/GW.elf index f842d38484c0b22cb62ab23f0aa8d9095394b28e..3b0ebbb9545223c99df6c68439877338ac38a0ea 100644 GIT binary patch delta 49914 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 Yha8OA--E8whr{2G)rY@-CidMjcfZ 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 : # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) goto ; [INV] else goto ; [INV] @@ -93,9 +94,9 @@ On_Charging_Status () # DEBUG BEGIN_STMT GV_Charging_Status_M_Torq = 0; # DEBUG BEGIN_STMT - GV_Charging_Status_M_Torq.2_2 = GV_Charging_Status_M_Torq; - _3 = (float) GV_Charging_Status_M_Torq.2_2; - GV_VCU_TrqCmd = _3; + GV_Charging_Status_M_Torq.2_3 = GV_Charging_Status_M_Torq; + _4 = (float) GV_Charging_Status_M_Torq.2_3; + GV_VCU_TrqCmd = _4; # DEBUG BEGIN_STMT GV_Charging_Status_Steer_Angle = 0; # DEBUG BEGIN_STMT diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.017i.build_ssa_passes b/GW/Debug_FLASH/src/BMS/Charging_Status.c.017i.build_ssa_passes index eb896d3f..45a3e8ce 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.017i.build_ssa_passes +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.017i.build_ssa_passes @@ -3,7 +3,8 @@ On_Charging_Status () : # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) goto ; [INV] else goto ; [INV] @@ -12,9 +13,9 @@ On_Charging_Status () # DEBUG BEGIN_STMT GV_Charging_Status_M_Torq = 0; # DEBUG BEGIN_STMT - GV_Charging_Status_M_Torq.2_2 = GV_Charging_Status_M_Torq; - _3 = (float) GV_Charging_Status_M_Torq.2_2; - GV_VCU_TrqCmd = _3; + GV_Charging_Status_M_Torq.2_3 = GV_Charging_Status_M_Torq; + _4 = (float) GV_Charging_Status_M_Torq.2_3; + GV_VCU_TrqCmd = _4; # DEBUG BEGIN_STMT GV_Charging_Status_Steer_Angle = 0; # DEBUG BEGIN_STMT diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.022i.opt_local_passes b/GW/Debug_FLASH/src/BMS/Charging_Status.c.022i.opt_local_passes index 7767c2ac..a6d81821 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.022i.opt_local_passes +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.022i.opt_local_passes @@ -1,13 +1,15 @@ On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; - unsigned char GV_Charging_Status_M_Torq.2_2; - float _3; + unsigned char _2; + unsigned char GV_Charging_Status_M_Torq.2_3; + float _4; : # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) goto ; [INV] else goto ; [INV] @@ -16,9 +18,9 @@ On_Charging_Status () # DEBUG BEGIN_STMT GV_Charging_Status_M_Torq = 0; # DEBUG BEGIN_STMT - GV_Charging_Status_M_Torq.2_2 = GV_Charging_Status_M_Torq; - _3 = (float) GV_Charging_Status_M_Torq.2_2; - GV_VCU_TrqCmd = _3; + GV_Charging_Status_M_Torq.2_3 = GV_Charging_Status_M_Torq; + _4 = (float) GV_Charging_Status_M_Torq.2_3; + GV_VCU_TrqCmd = _4; # DEBUG BEGIN_STMT GV_Charging_Status_Steer_Angle = 0; # DEBUG BEGIN_STMT diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.048i.remove_symbols b/GW/Debug_FLASH/src/BMS/Charging_Status.c.048i.remove_symbols index 0eadb9d2..27c390aa 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.048i.remove_symbols +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.048i.remove_symbols @@ -4,16 +4,16 @@ Reclaiming variables: Clearing address taken flags: Symbol table: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (365072224 (estimated locally),0.34 per call) + Called by: On_Charging_Status/1 (536870912 (estimated locally),0.50 per call) Calls: -GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 +GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06b23a68 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -21,7 +21,7 @@ GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 +GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06b23a20 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -29,7 +29,7 @@ GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 +GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06b239d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -37,7 +37,7 @@ GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 +GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06b23990 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -45,7 +45,7 @@ GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 +GV_Charging_Status_val/3 (GV_Charging_Status_val) @06b23708 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -53,7 +53,7 @@ GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 Referring: On_Charging_Status/1 (read)Check_Charging_Status/0 (write) Availability: not_available Varpool flags: -ECU3/2 (ECU3) @06ab86c0 +ECU3/2 (ECU3) @06b236c0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -61,7 +61,7 @@ ECU3/2 (ECU3) @06ab86c0 Referring: Check_Charging_Status/0 (read) Availability: not_available Varpool flags: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -69,8 +69,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -102,16 +102,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.060i.targetclone b/GW/Debug_FLASH/src/BMS/Charging_Status.c.060i.targetclone index 3a5dd541..bd52c284 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.060i.targetclone +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.060i.targetclone @@ -21,16 +21,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.064i.free-fnsummary1 b/GW/Debug_FLASH/src/BMS/Charging_Status.c.064i.free-fnsummary1 index 3a5dd541..bd52c284 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.064i.free-fnsummary1 +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.064i.free-fnsummary1 @@ -21,16 +21,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.068i.whole-program b/GW/Debug_FLASH/src/BMS/Charging_Status.c.068i.whole-program index bc42c7b8..33b34033 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.068i.whole-program +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.068i.whole-program @@ -14,16 +14,16 @@ Reclaiming variables: Clearing address taken flags: Symbol table: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (365072224 (estimated locally),0.34 per call) + Called by: On_Charging_Status/1 (536870912 (estimated locally),0.50 per call) Calls: -GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 +GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06b23a68 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -31,7 +31,7 @@ GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 +GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06b23a20 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -39,7 +39,7 @@ GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 +GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06b239d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -47,7 +47,7 @@ GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 +GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06b23990 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -55,7 +55,7 @@ GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 +GV_Charging_Status_val/3 (GV_Charging_Status_val) @06b23708 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -63,7 +63,7 @@ GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 Referring: On_Charging_Status/1 (read)Check_Charging_Status/0 (write) Availability: not_available Varpool flags: -ECU3/2 (ECU3) @06ab86c0 +ECU3/2 (ECU3) @06b236c0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -71,7 +71,7 @@ ECU3/2 (ECU3) @06ab86c0 Referring: Check_Charging_Status/0 (read) Availability: not_available Varpool flags: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -79,8 +79,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -112,16 +112,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.069i.profile_estimate b/GW/Debug_FLASH/src/BMS/Charging_Status.c.069i.profile_estimate index f490acfc..2ca9e975 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.069i.profile_estimate +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.069i.profile_estimate @@ -22,16 +22,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.070i.icf b/GW/Debug_FLASH/src/BMS/Charging_Status.c.070i.icf index 890a343d..dc1acd5d 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.070i.icf +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.070i.icf @@ -66,16 +66,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.071i.devirt b/GW/Debug_FLASH/src/BMS/Charging_Status.c.071i.devirt index 3806111e..f779d018 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.071i.devirt +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.071i.devirt @@ -1,15 +1,15 @@ Symbol table: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (365072224 (estimated locally),0.34 per call) + Called by: On_Charging_Status/1 (536870912 (estimated locally),0.50 per call) Calls: -GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 +GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06b23a68 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -17,7 +17,7 @@ GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 +GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06b23a20 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -25,7 +25,7 @@ GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 +GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06b239d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -33,7 +33,7 @@ GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 +GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06b23990 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -41,7 +41,7 @@ GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 +GV_Charging_Status_val/3 (GV_Charging_Status_val) @06b23708 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -49,7 +49,7 @@ GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 Referring: On_Charging_Status/1 (read)Check_Charging_Status/0 (write) Availability: not_available Varpool flags: -ECU3/2 (ECU3) @06ab86c0 +ECU3/2 (ECU3) @06b236c0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -57,7 +57,7 @@ ECU3/2 (ECU3) @06ab86c0 Referring: Check_Charging_Status/0 (read) Availability: not_available Varpool flags: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -65,8 +65,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -98,16 +98,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.072i.cp b/GW/Debug_FLASH/src/BMS/Charging_Status.c.072i.cp index 106888a1..feed9d98 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.072i.cp +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.072i.cp @@ -15,7 +15,7 @@ Jump functions: Not considering On_Charging_Status for cloning; -fipa-cp-clone disabled. Not considering Check_Charging_Status for cloning; -fipa-cp-clone disabled. -overall_size: 23, max_new_size: 11001 +overall_size: 24, max_new_size: 11001 IPA lattices after all propagation: @@ -34,16 +34,16 @@ Reclaiming variables: Clearing address taken flags: Symbol table: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (365072224 (estimated locally),0.34 per call) + Called by: On_Charging_Status/1 (536870912 (estimated locally),0.50 per call) Calls: -GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 +GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06b23a68 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -51,7 +51,7 @@ GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 +GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06b23a20 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -59,7 +59,7 @@ GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 +GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06b239d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -67,7 +67,7 @@ GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 +GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06b23990 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -75,7 +75,7 @@ GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 +GV_Charging_Status_val/3 (GV_Charging_Status_val) @06b23708 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -83,7 +83,7 @@ GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 Referring: On_Charging_Status/1 (read)Check_Charging_Status/0 (write) Availability: not_available Varpool flags: -ECU3/2 (ECU3) @06ab86c0 +ECU3/2 (ECU3) @06b236c0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -91,7 +91,7 @@ ECU3/2 (ECU3) @06ab86c0 Referring: Check_Charging_Status/0 (read) Availability: not_available Varpool flags: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -99,8 +99,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -116,16 +116,18 @@ Modification phase of node On_Charging_Status/1 On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.075i.fnsummary b/GW/Debug_FLASH/src/BMS/Charging_Status.c.075i.fnsummary index df19bbc8..08a1fc37 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.075i.fnsummary +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.075i.fnsummary @@ -38,17 +38,17 @@ Analyzing function: On_Charging_Status/1 Analyzing function body size: On_Charging_Status IPA function summary for On_Charging_Status/1 inlinable - global time: 8.400000 - self size: 7 + global time: 11.000000 + self size: 8 global size: 0 min size: 0 self stack: 0 global stack: 0 - size:3.000000, time:3.000000 + size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: On_Charging_Status.part.0/8 function not considered for inlining - loop depth: 0 freq:0.34 size: 1 time: 10callee size: 3 stack: 0 + loop depth: 0 freq:0.50 size: 1 time: 10callee size: 3 stack: 0 Analyzing function: Check_Charging_Status/0 @@ -75,20 +75,20 @@ IPA function summary for Check_Charging_Status/0 inlinable size:3.000000, time:2.000000, executed if:(not inlined) calls: On_Charging_Status/1 function not considered for inlining - loop depth: 0 freq:0.25 size: 1 time: 10callee size: 3 stack: 0 + loop depth: 0 freq:0.25 size: 1 time: 10callee size: 4 stack: 0 Symbol table: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (365072224 (estimated locally),0.34 per call) + Called by: On_Charging_Status/1 (536870912 (estimated locally),0.50 per call) Calls: -GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 +GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06b23a68 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -96,7 +96,7 @@ GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 +GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06b23a20 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -104,7 +104,7 @@ GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 +GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06b239d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -112,7 +112,7 @@ GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 +GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06b23990 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -120,7 +120,7 @@ GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 +GV_Charging_Status_val/3 (GV_Charging_Status_val) @06b23708 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -128,7 +128,7 @@ GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 Referring: On_Charging_Status/1 (read)Check_Charging_Status/0 (write) Availability: not_available Varpool flags: -ECU3/2 (ECU3) @06ab86c0 +ECU3/2 (ECU3) @06b236c0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -136,7 +136,7 @@ ECU3/2 (ECU3) @06ab86c0 Referring: Check_Charging_Status/0 (read) Availability: not_available Varpool flags: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -144,8 +144,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -177,16 +177,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.076i.inline b/GW/Debug_FLASH/src/BMS/Charging_Status.c.076i.inline index 724debb8..f6138d7f 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.076i.inline +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.076i.inline @@ -10,17 +10,17 @@ IPA function summary for On_Charging_Status.part.0/8 inlinable calls: IPA function summary for On_Charging_Status/1 inlinable - global time: 8.400000 - self size: 7 - global size: 7 + global time: 11.000000 + self size: 8 + global size: 8 min size: 2 self stack: 0 global stack: 0 - size:3.000000, time:3.000000 + size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: On_Charging_Status.part.0/8 function not considered for inlining - loop depth: 0 freq:0.34 size: 1 time: 10callee size: 3 stack: 0 + loop depth: 0 freq:0.50 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for Check_Charging_Status/0 inlinable global time: 9.550000 @@ -33,11 +33,11 @@ IPA function summary for Check_Charging_Status/0 inlinable size:3.000000, time:2.000000, executed if:(not inlined) calls: On_Charging_Status/1 function not considered for inlining - loop depth: 0 freq:0.25 size: 1 time: 10callee size: 3 stack: 0 + loop depth: 0 freq:0.25 size: 1 time: 10callee size: 4 stack: 0 Flattening functions: -Overall time estimate: 23.950000 weighted by profile: 0.000000 +Overall time estimate: 26.550000 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in On_Charging_Status.part.0/8. @@ -46,30 +46,30 @@ Enqueueing calls in Check_Charging_Status/0. Considering On_Charging_Status.part.0/8 with 7 size to be inlined into On_Charging_Status/1 in unknown:0 - Estimated badness is -0.544000, frequency 0.34. + Estimated badness is -0.727273, frequency 0.50. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: -Overall time estimate: 15.910000 weighted by profile: 0.000000 +Overall time estimate: 17.550000 weighted by profile: 0.000000 Why inlining failed? call is unlikely and code size would grow : 1 calls, 0.255000 freq, 0 count IPA function summary for On_Charging_Status/1 inlinable - global time: 6.360000 - self size: 7 - global size: 10 - min size: 7 + global time: 8.000000 + self size: 8 + global size: 11 + min size: 8 self stack: 0 global stack: 0 - estimated growth:3 - size:7.000000, time:4.360000 + estimated growth:4 + size:8.000000, time:6.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: On_Charging_Status.part.0/8 inlined - loop depth: 0 freq:0.34 size: 1 time: 10callee size: 3 stack: 0 + loop depth: 0 freq:0.50 size: 1 time: 10callee size: 3 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Check_Charging_Status/0 inlinable @@ -87,17 +87,17 @@ IPA function summary for Check_Charging_Status/0 inlinable Symbol table: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: -GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 +GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06b23a68 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -105,7 +105,7 @@ GV_VCU_Drive_Mode/7 (GV_VCU_Drive_Mode) @06ab8a68 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 +GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06b23a20 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -113,7 +113,7 @@ GV_Charging_Status_Steer_Angle/6 (GV_Charging_Status_Steer_Angle) @06ab8a20 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 +GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06b239d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -121,7 +121,7 @@ GV_VCU_TrqCmd/5 (GV_VCU_TrqCmd) @06ab89d8 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 +GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06b23990 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -129,7 +129,7 @@ GV_Charging_Status_M_Torq/4 (GV_Charging_Status_M_Torq) @06ab8990 Referring: On_Charging_Status.part.0/8 (write) Availability: not_available Varpool flags: -GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 +GV_Charging_Status_val/3 (GV_Charging_Status_val) @06b23708 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -137,7 +137,7 @@ GV_Charging_Status_val/3 (GV_Charging_Status_val) @06ab8708 Referring: On_Charging_Status/1 (read)Check_Charging_Status/0 (write) Availability: not_available Varpool flags: -ECU3/2 (ECU3) @06ab86c0 +ECU3/2 (ECU3) @06b236c0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public @@ -145,7 +145,7 @@ ECU3/2 (ECU3) @06ab86c0 Referring: Check_Charging_Status/0 (read) Availability: not_available Varpool flags: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -153,8 +153,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -190,16 +190,18 @@ Merging blocks 7 and 8 On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072220]: + [local count: 536870913]: # DEBUG INLINE_ENTRY On_Charging_Status # DEBUG BEGIN_STMT GV_Charging_Status_M_Torq = 0; diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.077i.pure-const b/GW/Debug_FLASH/src/BMS/Charging_Status.c.077i.pure-const index 9082aa55..8c31554f 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.077i.pure-const +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.077i.pure-const @@ -11,7 +11,8 @@ Function is locally const. local analysis of On_Charging_Status scanning: GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - scanning: if (GV_Charging_Status_val.1_1 == 1) + scanning: _2 = GV_Charging_Status_val.1_1 + 255; + scanning: if (_2 <= 2) scanning: On_Charging_Status.part.0 (); scanning: return; Function is locally const. @@ -28,31 +29,31 @@ Function is locally const. Function is locally const. callgraph: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial - Aux: @065c6ec8 + Aux: @04b36ba8 References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c71a8 + Aux: @04b36d88 References: GV_Charging_Status_val/3 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c7068 + Aux: @04b36ca8 References: ECU3/2 (read)GV_Charging_Status_val/3 (write) Referring: Availability: available @@ -62,31 +63,31 @@ Check_Charging_Status/0 (Check_Charging_Status) @06abd000 ordered call graph: reduced for nothrow -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial - Aux: @065c6ec8 + Aux: @04b36ba8 References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c71a8 + Aux: @04b36d88 References: GV_Charging_Status_val/3 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c7068 + Aux: @04b36ca8 References: ECU3/2 (read)GV_Charging_Status_val/3 (write) Referring: Availability: available @@ -108,31 +109,31 @@ On_Charging_Status: malloc_bottom Check_Charging_Status: malloc_bottom callgraph: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial - Aux: @065c6e88 + Aux: @04b36a48 References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c7048 + Aux: @04b36ac8 References: GV_Charging_Status_val/3 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c6f48 + Aux: @04b36c68 References: ECU3/2 (read)GV_Charging_Status_val/3 (write) Referring: Availability: available @@ -142,36 +143,36 @@ Check_Charging_Status/0 (Check_Charging_Status) @06abd000 ordered call graph: reduced -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c6f48 + Aux: @04b36c68 References: ECU3/2 (read)GV_Charging_Status_val/3 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: On_Charging_Status/1 (273804165 (estimated locally),0.25 per call) -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c7048 + Aux: @04b36ac8 References: GV_Charging_Status_val/3 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial - Aux: @065c6e88 + Aux: @04b36a48 References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: Function found not to call free: On_Charging_Status.part.0 @@ -200,16 +201,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.078i.free-fnsummary2 b/GW/Debug_FLASH/src/BMS/Charging_Status.c.078i.free-fnsummary2 index 3a5dd541..bd52c284 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.078i.free-fnsummary2 +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.078i.free-fnsummary2 @@ -21,16 +21,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.079i.static-var b/GW/Debug_FLASH/src/BMS/Charging_Status.c.079i.static-var index f9f7096a..d9688e17 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.079i.static-var +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.079i.static-var @@ -1,16 +1,16 @@ callgraph: -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part nonfreeing_fn optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part nonfreeing_fn optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public References: GV_Charging_Status_val/3 (read) @@ -18,8 +18,8 @@ On_Charging_Status/1 (On_Charging_Status) @06abd2a0 Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public References: ECU3/2 (read)GV_Charging_Status_val/3 (write) @@ -41,36 +41,36 @@ Function name:Check_Charging_Status/0: locals written: ordered call graph: reduced -Check_Charging_Status/0 (Check_Charging_Status) @06abd000 +Check_Charging_Status/0 (Check_Charging_Status) @06b28000 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c6e68 + Aux: @04b36ac8 References: ECU3/2 (read)GV_Charging_Status_val/3 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Calls: On_Charging_Status/1 (273804165 (estimated locally),0.25 per call) -On_Charging_Status/1 (On_Charging_Status) @06abd2a0 +On_Charging_Status/1 (On_Charging_Status) @06b282a0 Type: function definition analyzed Visibility: externally_visible public - Aux: @065c6e08 + Aux: @04b36b88 References: GV_Charging_Status_val/3 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size Called by: Check_Charging_Status/0 (273804165 (estimated locally),0.25 per call) - Calls: On_Charging_Status.part.0/8 (inlined) (365072224 (estimated locally),0.34 per call) -On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06abdd20 + Calls: On_Charging_Status.part.0/8 (inlined) (536870912 (estimated locally),0.50 per call) +On_Charging_Status.part.0/8 (On_Charging_Status.part.0) @06b28d20 Type: function definition analyzed Visibility: prevailing_def_ironly artificial - Aux: @065c6fc8 + Aux: @04b36c68 References: GV_Charging_Status_M_Torq/4 (write)GV_VCU_TrqCmd/5 (write)GV_Charging_Status_Steer_Angle/6 (write)GV_VCU_Drive_Mode/7 (write) Referring: Function On_Charging_Status.part.0/8 is inline copy in On_Charging_Status/1 Availability: local - Function flags: count:365072224 (estimated locally) first_run:1 body local split_part nonfreeing_fn optimize_size - Called by: On_Charging_Status/1 (inlined) (365072224 (estimated locally),0.34 per call) + Function flags: count:536870912 (estimated locally) first_run:1 body local split_part nonfreeing_fn optimize_size + Called by: On_Charging_Status/1 (inlined) (536870912 (estimated locally),0.50 per call) Calls: @@ -114,16 +114,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.080i.single-use b/GW/Debug_FLASH/src/BMS/Charging_Status.c.080i.single-use index 3a5dd541..bd52c284 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.080i.single-use +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.080i.single-use @@ -21,16 +21,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.081i.comdats b/GW/Debug_FLASH/src/BMS/Charging_Status.c.081i.comdats index 3a5dd541..bd52c284 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.081i.comdats +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.081i.comdats @@ -21,16 +21,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.c.082i.materialize-all-clones b/GW/Debug_FLASH/src/BMS/Charging_Status.c.082i.materialize-all-clones index 3a5dd541..bd52c284 100644 --- a/GW/Debug_FLASH/src/BMS/Charging_Status.c.082i.materialize-all-clones +++ b/GW/Debug_FLASH/src/BMS/Charging_Status.c.082i.materialize-all-clones @@ -21,16 +21,18 @@ On_Charging_Status.part.0 () On_Charging_Status () { unsigned char GV_Charging_Status_val.1_1; + unsigned char _2; [local count: 1073741824]: # DEBUG BEGIN_STMT GV_Charging_Status_val.1_1 = GV_Charging_Status_val; - if (GV_Charging_Status_val.1_1 == 1) - goto ; [34.00%] + _2 = GV_Charging_Status_val.1_1 + 255; + if (_2 <= 2) + goto ; [50.00%] else - goto ; [66.00%] + goto ; [50.00%] - [local count: 365072224]: + [local count: 536870912]: On_Charging_Status.part.0 (); [local count: 1073741824]: diff --git a/GW/Debug_FLASH/src/BMS/Charging_Status.o b/GW/Debug_FLASH/src/BMS/Charging_Status.o index 36e2043efc53135006f378075670566ef8e19e83..c46916c6bb5d6dd09ba33aa5953c5ed76c86b119 100644 GIT binary patch delta 1075 zcmYk)Ur1AN6bJBg)XlY8DASZo+H}<@vuQJCWzGJ|#862~^kE30N#Y&~EV2lCP$&_6 zI6(^bP#6(p8Z*hHB#`{GVW5L3f}SM{ggti7J(ujl_WkYm`F(%)cQ0EQOOKDG54bR6 z%$!A0LnZRl&O@+|C)*vVT(@3x6<8~*Xh|y`Eb2duQ{&nN#B-mA3makG0dS| zF`hEUGSv`cNm7r5jh;$u(4s_`HYBnsKh6=Mvl6}3$>ErLhTz){zz2i^s*7VD`e<4t zIf0PDvmzctEWvJB^dXLg4%-_vo=9}BYAb7_s*g2ncD<^TtaYjb|LK0!EjIyvsjjo; zqTaViHObmx-ZzTSYwlcZD7Mn@GM{&V#hao%pY|$m1JrA8@-0HU*(+5YWX)A|P4PWV z^{c*MEmIA!224Go`h(T48et8Z8c@yZ0qCSB%lw{Rv5uHeb5!--oqwmQeYbh4@I*y)iu4@J*C>f+OMYyvd)>OI%6pQB*zNBMcWL* zdaAy~bJ{z3AK<(0n*7Kmvsb0Pe0nLpXKY++?aD$H98th|It$e2P79}+oI956#m?8Z`R|j6Lz;d=oZUmFZC~6khQ{{h4lA! z&bM(;D}qW!o;x=4QTdHe zEOB9#)KDR}aY(#yc9aPWk%yQf8(1bGtdlwp$RNBG#f1SfiZK$x94R7C=CMaC$gc7W zeWZ>AabbpxVuj3OlUzoP6cPBOJVBHMks&X!NFsPceqf(W;8<1ZK$xr{MIK<5#IZ`s zsE{HK$!|EHl`4iv7*iyOWs<-;8N>nk3GWw0zmHtP7^!291dwlZdt?{#Rmq``#E~Gq nm?4j_LTqf37pRdC0^gJ>qQr#^*}$T5GX6o#JN>c$Oa6twykyp_ diff --git a/GW/src/BMS/Charging_Status.c b/GW/src/BMS/Charging_Status.c index 3a947ec2..33d829b5 100644 --- a/GW/src/BMS/Charging_Status.c +++ b/GW/src/BMS/Charging_Status.c @@ -31,7 +31,7 @@ void Check_Charging_Status(void) { void On_Charging_Status (void){ - if(GV_Charging_Status_val == 1){ + if(GV_Charging_Status_val == 1||GV_Charging_Status_val == 2||GV_Charging_Status_val == 3){ // ¸ðÅÍÅäÅ© 0 °íÁ¤ can.c ºÎºÐ¿¡ Á¶°Ç¹® °É±â GV_Charging_Status_M_Torq =0;