mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 18:03:59 +09:00
784 lines
25 KiB
Plaintext
784 lines
25 KiB
Plaintext
|
|
|
|
local analysis of Emios_Pwm_Ip_IrqHandler
|
|
scanning: _1 = (int) instance_7(D);
|
|
scanning: _2 = Emios_Pwm_Ip_aBasePtr[_1];
|
|
scanning: _12 = (int) channel_9(D);
|
|
scanning: _13 ={v} _2->CH.UC[_12].S;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _14 = _13 | 1;
|
|
scanning: _2->CH.UC[_12].S ={v} _14;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref write is not const/pure
|
|
scanning: Emios_Pwm_Ip_IrqDaocHandler (instance_7(D), channel_9(D));
|
|
scanning: _3 = Emios_Pwm_Ip_aNotificationPtr[_1][_12];
|
|
scanning: if (_3 != 0B)
|
|
scanning: _4 = _3->cbFunction;
|
|
Indirect ref read is not const
|
|
scanning: _5 = _3->cbParameter;
|
|
Indirect ref read is not const
|
|
scanning: _4 (_5);
|
|
scanning: return;
|
|
|
|
|
|
local analysis of Emios_Pwm_Ip_IrqDaocHandler
|
|
scanning: _1 = (int) instance_37(D);
|
|
scanning: _2 = Emios_Pwm_Ip_aBasePtr[_1];
|
|
scanning: _3 = Emios_Pwm_Ip_GetMasterBusChannel (instance_37(D), channel_39(D));
|
|
scanning: _55 = (int) _3;
|
|
scanning: _56 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_55].A;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _57 = (short unsigned int) _56;
|
|
scanning: _52 = (int) channel_39(D);
|
|
scanning: _53 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].C;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _54 = _53 & 128;
|
|
scanning: _50 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].S;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _51 = _50 & 2;
|
|
scanning: _4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
scanning: if (_4 == 6)
|
|
scanning: _5 = Emios_Pwm_Ip_aPeriod[_1][_52];
|
|
scanning: _6 = Emios_Pwm_Ip_aDaocDuty[_1][_52];
|
|
scanning: daocDuty_47 = _5 - _6;
|
|
scanning: _7 = (int) daocDuty_47;
|
|
scanning: _58 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].B;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _41 = _58 & 65535;
|
|
scanning: _8 = (int) _41;
|
|
scanning: _9 = _7 + _8;
|
|
scanning: _67 = _56 & 65535;
|
|
scanning: _10 = (int) _67;
|
|
scanning: _11 = _9 % _10;
|
|
scanning: daocRegA_48 = (uint16) _11;
|
|
scanning: if (daocRegA_48 == 0)
|
|
scanning: _60 = (long unsigned int) iftmp.0_29;
|
|
scanning: _2->CH.UC[_52].A ={v} _60;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref write is not const/pure
|
|
scanning: _12 = (int) _5;
|
|
scanning: _59 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].B;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _42 = _59 & 65535;
|
|
scanning: _13 = (int) _42;
|
|
scanning: _14 = _12 + _13;
|
|
scanning: _15 = _14 % _10;
|
|
scanning: daocRegB_49 = (uint16) _15;
|
|
scanning: if (daocRegB_49 == 0)
|
|
scanning: _61 = (long unsigned int) iftmp.1_30;
|
|
scanning: _2->CH.UC[_52].B ={v} _61;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref write is not const/pure
|
|
scanning: _16 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
scanning: if (_16 == 7)
|
|
scanning: if (_54 != 0)
|
|
scanning: if (_51 == 0)
|
|
scanning: if (_54 == 0)
|
|
scanning: if (_51 != 0)
|
|
scanning: _17 = Emios_Pwm_Ip_aPeriod[_1][_52];
|
|
scanning: _18 = (int) _17;
|
|
scanning: _62 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].A;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _36 = _62 & 65535;
|
|
scanning: _19 = (int) _36;
|
|
scanning: _20 = _18 + _19;
|
|
scanning: _66 = _56 & 65535;
|
|
scanning: _21 = (int) _66;
|
|
scanning: _22 = _20 % _21;
|
|
scanning: daocRegA_46 = (uint16) _22;
|
|
scanning: if (daocRegA_46 == 0)
|
|
scanning: _63 = (long unsigned int) iftmp.2_31;
|
|
scanning: _2->CH.UC[_52].A ={v} _63;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref write is not const/pure
|
|
scanning: _23 = Emios_Pwm_Ip_aDaocDuty[_1][_52];
|
|
scanning: _24 = (int) _23;
|
|
scanning: _64 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].A;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _34 = _64 & 65535;
|
|
scanning: _25 = (int) _34;
|
|
scanning: _26 = _24 + _25;
|
|
scanning: _35 = _56 & 65535;
|
|
scanning: _27 = (int) _35;
|
|
scanning: _28 = _26 % _27;
|
|
scanning: daocRegB_45 = (uint16) _28;
|
|
scanning: if (daocRegB_45 == 0)
|
|
scanning: _65 = (long unsigned int) iftmp.3_32;
|
|
scanning: _2->CH.UC[_52].B ={v} _65;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref write is not const/pure
|
|
scanning: return;
|
|
|
|
|
|
local analysis of Emios_Pwm_Ip_GetPwmMode
|
|
scanning: _1 = (int) channel_5(D);
|
|
scanning: _2 ={v} base_7(D)->CH.UC[_1].C;
|
|
Volatile stmt is not const/pure
|
|
Indirect ref read is not const
|
|
scanning: _3 = _2 & 127;
|
|
scanning: switch (_3) <default: <L12> [7.69%], case 1: <L15> [7.69%], case 6: <L1> [7.69%], case 7: <L2> [7.69%], case 38: <L3> [7.69%], case 88: <L4> [7.69%], case 90: <L5> [7.69%], case 92: <L6> [7.69%], case 93: <L8> [7.69%], case 94: <L7> [7.69%], case 95: <L9> [7.69%], case 96: <L10> [7.69%], case 98: <L11> [7.69%]>
|
|
scanning: <L1>:
|
|
scanning: <L2>:
|
|
scanning: <L3>:
|
|
scanning: <L4>:
|
|
scanning: <L5>:
|
|
scanning: <L6>:
|
|
scanning: <L7>:
|
|
scanning: <L8>:
|
|
scanning: <L9>:
|
|
scanning: <L10>:
|
|
scanning: <L11>:
|
|
scanning: <L12>:
|
|
scanning: <L15>:
|
|
scanning: return mode_4;
|
|
callgraph:
|
|
|
|
Emios_Pwm_Ip_GetMasterBusChannel/45 (Emios_Pwm_Ip_GetMasterBusChannel) @069cb540
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06a18c40
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
Aux: @06615868
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Emios_Pwm_Ip_IrqDaocHandler/41 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Indirect call(751619278 (estimated locally),0.70 per call)
|
|
Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06a182a0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @06615888
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)
|
|
Referring:
|
|
Function Emios_Pwm_Ip_IrqDaocHandler/41 is inline copy in Emios_Pwm_Ip_IrqHandler/42
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqHandler/42 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Emios_Pwm_Ip_GetPwmMode/27 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_GetPwmMode/27 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetMasterBusChannel/45 (1073741824 (estimated locally),1.00 per call)
|
|
Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06a08380
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @06615608
|
|
References:
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
|
|
|
|
ordered call graph: reduced for nothrow
|
|
Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06a18c40
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
Aux: @06615868
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Emios_Pwm_Ip_IrqDaocHandler/41 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Indirect call(751619278 (estimated locally),0.70 per call)
|
|
Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06a182a0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @06615888
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)
|
|
Referring:
|
|
Function Emios_Pwm_Ip_IrqDaocHandler/41 is inline copy in Emios_Pwm_Ip_IrqHandler/42
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqHandler/42 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Emios_Pwm_Ip_GetPwmMode/27 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_GetPwmMode/27 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetMasterBusChannel/45 (1073741824 (estimated locally),1.00 per call)
|
|
Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06a08380
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @06615608
|
|
References:
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
|
|
|
|
|
|
MALLOC LATTICE Initial:
|
|
Emios_Pwm_Ip_IrqHandler: malloc_bottom
|
|
Emios_Pwm_Ip_IrqDaocHandler: malloc_bottom
|
|
Emios_Pwm_Ip_GetPwmMode: malloc_bottom
|
|
|
|
|
|
MALLOC LATTICE after propagation:
|
|
Emios_Pwm_Ip_IrqHandler: malloc_bottom
|
|
Emios_Pwm_Ip_IrqDaocHandler: malloc_bottom
|
|
Emios_Pwm_Ip_GetPwmMode: malloc_bottom
|
|
callgraph:
|
|
|
|
Emios_Pwm_Ip_GetMasterBusChannel/45 (Emios_Pwm_Ip_GetMasterBusChannel) @069cb540
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06a18c40
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
Aux: @06615768
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Emios_Pwm_Ip_IrqDaocHandler/41 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Indirect call(751619278 (estimated locally),0.70 per call)
|
|
Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06a182a0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @06615948
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)
|
|
Referring:
|
|
Function Emios_Pwm_Ip_IrqDaocHandler/41 is inline copy in Emios_Pwm_Ip_IrqHandler/42
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqHandler/42 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Emios_Pwm_Ip_GetPwmMode/27 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_GetPwmMode/27 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetMasterBusChannel/45 (1073741824 (estimated locally),1.00 per call)
|
|
Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06a08380
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @066157e8
|
|
References:
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
|
|
|
|
ordered call graph: reduced
|
|
Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06a18c40
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
Aux: @06615768
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Emios_Pwm_Ip_IrqDaocHandler/41 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Indirect call(751619278 (estimated locally),0.70 per call)
|
|
Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06a182a0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @06615948
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)
|
|
Referring:
|
|
Function Emios_Pwm_Ip_IrqDaocHandler/41 is inline copy in Emios_Pwm_Ip_IrqHandler/42
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqHandler/42 (inlined) (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Emios_Pwm_Ip_GetPwmMode/27 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_GetPwmMode/27 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetMasterBusChannel/45 (1073741824 (estimated locally),1.00 per call)
|
|
Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06a08380
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Aux: @066157e8
|
|
References:
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
|
|
Function found not to call free: Emios_Pwm_Ip_GetPwmMode
|
|
Emios_Pwm_Ip_IrqHandler (uint8 instance, uint8 channel)
|
|
{
|
|
int _1;
|
|
struct Emios_Pwm_Ip_HwAddrType * _2;
|
|
const struct Emios_Pwm_Ip_NotificationType * _3;
|
|
void (*<Te3>) (void *) _4;
|
|
void * _5;
|
|
int _12;
|
|
long unsigned int _13;
|
|
long unsigned int _14;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance_7(D);
|
|
_2 = Emios_Pwm_Ip_aBasePtr[_1];
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_9(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_ClearFlagEvent
|
|
# DEBUG BEGIN_STMT
|
|
_12 = (int) channel_9(D);
|
|
_13 ={v} _2->CH.UC[_12].S;
|
|
_14 = _13 | 1;
|
|
_2->CH.UC[_12].S ={v} _14;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG BEGIN_STMT
|
|
Emios_Pwm_Ip_IrqDaocHandler (instance_7(D), channel_9(D));
|
|
# DEBUG BEGIN_STMT
|
|
_3 = Emios_Pwm_Ip_aNotificationPtr[_1][_12];
|
|
if (_3 != 0B)
|
|
goto <bb 3>; [70.00%]
|
|
else
|
|
goto <bb 4>; [30.00%]
|
|
|
|
<bb 3> [local count: 751619278]:
|
|
# DEBUG BEGIN_STMT
|
|
_4 = _3->cbFunction;
|
|
_5 = _3->cbParameter;
|
|
_4 (_5);
|
|
|
|
<bb 4> [local count: 1073741824]:
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Emios_Pwm_Ip_IrqDaocHandler (uint8 instance, uint8 channel)
|
|
{
|
|
uint16 daocRegB;
|
|
uint16 daocRegA;
|
|
uint16 daocDuty;
|
|
int _1;
|
|
struct Emios_Pwm_Ip_HwAddrType * _2;
|
|
unsigned char _3;
|
|
<unnamed type> _4;
|
|
short unsigned int _5;
|
|
short unsigned int _6;
|
|
int _7;
|
|
int _8;
|
|
int _9;
|
|
int _10;
|
|
int _11;
|
|
int _12;
|
|
int _13;
|
|
int _14;
|
|
int _15;
|
|
<unnamed type> _16;
|
|
short unsigned int _17;
|
|
int _18;
|
|
int _19;
|
|
int _20;
|
|
int _21;
|
|
int _22;
|
|
short unsigned int _23;
|
|
int _24;
|
|
int _25;
|
|
int _26;
|
|
int _27;
|
|
int _28;
|
|
uint16 iftmp.0_29;
|
|
uint16 iftmp.1_30;
|
|
uint16 iftmp.2_31;
|
|
uint16 iftmp.3_32;
|
|
long unsigned int _34;
|
|
long unsigned int _35;
|
|
long unsigned int _36;
|
|
long unsigned int _41;
|
|
long unsigned int _42;
|
|
long unsigned int _50;
|
|
long unsigned int _51;
|
|
int _52;
|
|
long unsigned int _53;
|
|
long unsigned int _54;
|
|
int _55;
|
|
long unsigned int _56;
|
|
short unsigned int _57;
|
|
long unsigned int _58;
|
|
long unsigned int _59;
|
|
long unsigned int _60;
|
|
long unsigned int _61;
|
|
long unsigned int _62;
|
|
long unsigned int _63;
|
|
long unsigned int _64;
|
|
long unsigned int _65;
|
|
long unsigned int _66;
|
|
long unsigned int _67;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG daocDuty => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG daocRegA => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG daocRegB => 0
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance_37(D);
|
|
_2 = Emios_Pwm_Ip_aBasePtr[_1];
|
|
_3 = Emios_Pwm_Ip_GetMasterBusChannel (instance_37(D), channel_39(D));
|
|
# DEBUG base => _2
|
|
# DEBUG channel => _3
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetUCRegA
|
|
# DEBUG BEGIN_STMT
|
|
_55 = (int) _3;
|
|
_56 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_55].A;
|
|
_57 = (short unsigned int) _56;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG counterMax => _57
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetEdgePolarity
|
|
# DEBUG BEGIN_STMT
|
|
_52 = (int) channel_39(D);
|
|
_53 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].C;
|
|
_54 = _53 & 128;
|
|
# DEBUG D#1 => _54 != 0
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG polarity => (<unnamed type>) D#1
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetOutputPinState
|
|
# DEBUG BEGIN_STMT
|
|
_50 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].S;
|
|
_51 = _50 & 2;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG outputPin => _51 != 0
|
|
# DEBUG BEGIN_STMT
|
|
_4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
if (_4 == 6)
|
|
goto <bb 3>; [51.12%]
|
|
else
|
|
goto <bb 8>; [48.88%]
|
|
|
|
<bb 3> [local count: 548896821]:
|
|
# DEBUG BEGIN_STMT
|
|
_5 = Emios_Pwm_Ip_aPeriod[_1][_52];
|
|
_6 = Emios_Pwm_Ip_aDaocDuty[_1][_52];
|
|
daocDuty_47 = _5 - _6;
|
|
# DEBUG daocDuty => daocDuty_47
|
|
# DEBUG BEGIN_STMT
|
|
_7 = (int) daocDuty_47;
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetUCRegB
|
|
# DEBUG BEGIN_STMT
|
|
_58 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].B;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
_41 = _58 & 65535;
|
|
_8 = (int) _41;
|
|
_9 = _7 + _8;
|
|
_67 = _56 & 65535;
|
|
_10 = (int) _67;
|
|
_11 = _9 % _10;
|
|
daocRegA_48 = (uint16) _11;
|
|
# DEBUG daocRegA => daocRegA_48
|
|
# DEBUG BEGIN_STMT
|
|
if (daocRegA_48 == 0)
|
|
goto <bb 5>; [50.00%]
|
|
else
|
|
goto <bb 4>; [50.00%]
|
|
|
|
<bb 4> [local count: 274448410]:
|
|
|
|
<bb 5> [local count: 548896820]:
|
|
# iftmp.0_29 = PHI <_57(3), daocRegA_48(4)>
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG value => iftmp.0_29
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_SetUCRegA
|
|
# DEBUG BEGIN_STMT
|
|
_60 = (long unsigned int) iftmp.0_29;
|
|
_2->CH.UC[_52].A ={v} _60;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_12 = (int) _5;
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetUCRegB
|
|
# DEBUG BEGIN_STMT
|
|
_59 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].B;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
_42 = _59 & 65535;
|
|
_13 = (int) _42;
|
|
_14 = _12 + _13;
|
|
_15 = _14 % _10;
|
|
daocRegB_49 = (uint16) _15;
|
|
# DEBUG daocRegB => daocRegB_49
|
|
# DEBUG BEGIN_STMT
|
|
if (daocRegB_49 == 0)
|
|
goto <bb 7>; [50.00%]
|
|
else
|
|
goto <bb 6>; [50.00%]
|
|
|
|
<bb 6> [local count: 274448410]:
|
|
|
|
<bb 7> [local count: 548896820]:
|
|
# iftmp.1_30 = PHI <_57(5), daocRegB_49(6)>
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG value => iftmp.1_30
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_SetUCRegB
|
|
# DEBUG BEGIN_STMT
|
|
_61 = (long unsigned int) iftmp.1_30;
|
|
_2->CH.UC[_52].B ={v} _61;
|
|
goto <bb 19>; [100.00%]
|
|
|
|
<bb 8> [local count: 524845004]:
|
|
# DEBUG BEGIN_STMT
|
|
_16 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
if (_16 == 7)
|
|
goto <bb 9>; [34.00%]
|
|
else
|
|
goto <bb 19>; [66.00%]
|
|
|
|
<bb 9> [local count: 178447301]:
|
|
# DEBUG BEGIN_STMT
|
|
if (_54 != 0)
|
|
goto <bb 10>; [50.00%]
|
|
else
|
|
goto <bb 11>; [50.00%]
|
|
|
|
<bb 10> [local count: 89223651]:
|
|
if (_51 == 0)
|
|
goto <bb 13>; [50.00%]
|
|
else
|
|
goto <bb 11>; [50.00%]
|
|
|
|
<bb 11> [local count: 133835476]:
|
|
if (_54 == 0)
|
|
goto <bb 12>; [50.00%]
|
|
else
|
|
goto <bb 16>; [50.00%]
|
|
|
|
<bb 12> [local count: 66917738]:
|
|
if (_51 != 0)
|
|
goto <bb 13>; [50.00%]
|
|
else
|
|
goto <bb 16>; [50.00%]
|
|
|
|
<bb 13> [local count: 78070694]:
|
|
# DEBUG BEGIN_STMT
|
|
_17 = Emios_Pwm_Ip_aPeriod[_1][_52];
|
|
_18 = (int) _17;
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetUCRegA
|
|
# DEBUG BEGIN_STMT
|
|
_62 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].A;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
_36 = _62 & 65535;
|
|
_19 = (int) _36;
|
|
_20 = _18 + _19;
|
|
_66 = _56 & 65535;
|
|
_21 = (int) _66;
|
|
_22 = _20 % _21;
|
|
daocRegA_46 = (uint16) _22;
|
|
# DEBUG daocRegA => daocRegA_46
|
|
# DEBUG BEGIN_STMT
|
|
if (daocRegA_46 == 0)
|
|
goto <bb 15>; [50.00%]
|
|
else
|
|
goto <bb 14>; [50.00%]
|
|
|
|
<bb 14> [local count: 39035347]:
|
|
|
|
<bb 15> [local count: 78070694]:
|
|
# iftmp.2_31 = PHI <_57(13), daocRegA_46(14)>
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG value => iftmp.2_31
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_SetUCRegA
|
|
# DEBUG BEGIN_STMT
|
|
_63 = (long unsigned int) iftmp.2_31;
|
|
_2->CH.UC[_52].A ={v} _63;
|
|
goto <bb 19>; [100.00%]
|
|
|
|
<bb 16> [local count: 100376607]:
|
|
# DEBUG BEGIN_STMT
|
|
_23 = Emios_Pwm_Ip_aDaocDuty[_1][_52];
|
|
_24 = (int) _23;
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_GetUCRegA
|
|
# DEBUG BEGIN_STMT
|
|
_64 ={v} MEM[(const struct Emios_Pwm_Ip_HwAddrType *)_2].CH.UC[_52].A;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
_34 = _64 & 65535;
|
|
_25 = (int) _34;
|
|
_26 = _24 + _25;
|
|
_35 = _56 & 65535;
|
|
_27 = (int) _35;
|
|
_28 = _26 % _27;
|
|
daocRegB_45 = (uint16) _28;
|
|
# DEBUG daocRegB => daocRegB_45
|
|
# DEBUG BEGIN_STMT
|
|
if (daocRegB_45 == 0)
|
|
goto <bb 18>; [50.00%]
|
|
else
|
|
goto <bb 17>; [50.00%]
|
|
|
|
<bb 17> [local count: 50188304]:
|
|
|
|
<bb 18> [local count: 100376607]:
|
|
# iftmp.3_32 = PHI <_57(16), daocRegB_45(17)>
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_39(D)
|
|
# DEBUG value => iftmp.3_32
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_SetUCRegB
|
|
# DEBUG BEGIN_STMT
|
|
_65 = (long unsigned int) iftmp.3_32;
|
|
_2->CH.UC[_52].B ={v} _65;
|
|
|
|
<bb 19> [local count: 1073741823]:
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Emios_Pwm_Ip_GetPwmMode (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
|
|
{
|
|
Emios_Pwm_Ip_PwmModeType mode;
|
|
int _1;
|
|
long unsigned int _2;
|
|
long unsigned int _3;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_5(D);
|
|
_2 ={v} base_7(D)->CH.UC[_1].C;
|
|
_3 = _2 & 127;
|
|
switch (_3) <default: <L12> [7.69%], case 1: <L15> [7.69%], case 6: <L1> [7.69%], case 7: <L2> [7.69%], case 38: <L3> [7.69%], case 88: <L4> [7.69%], case 90: <L5> [7.69%], case 92: <L6> [7.69%], case 93: <L8> [7.69%], case 94: <L7> [7.69%], case 95: <L9> [7.69%], case 96: <L10> [7.69%], case 98: <L11> [7.69%]>
|
|
|
|
<bb 3> [local count: 82570746]:
|
|
<L1>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 6
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 4> [local count: 82570746]:
|
|
<L2>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 7
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 5> [local count: 82570746]:
|
|
<L3>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 38
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 6> [local count: 82570746]:
|
|
<L4>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 88
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 7> [local count: 82570746]:
|
|
<L5>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 90
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 8> [local count: 82570746]:
|
|
<L6>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 92
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 9> [local count: 82570746]:
|
|
<L7>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 94
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 10> [local count: 82570746]:
|
|
<L8>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 93
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 11> [local count: 82570746]:
|
|
<L9>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 95
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 12> [local count: 82570746]:
|
|
<L10>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 96
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 13> [local count: 82570746]:
|
|
<L11>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 98
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 14> [local count: 82570746]:
|
|
<L12>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 255
|
|
# DEBUG BEGIN_STMT
|
|
|
|
<bb 15> [local count: 1073419702]:
|
|
# mode_4 = PHI <1(2), 6(3), 7(4), 38(5), 88(6), 90(7), 92(8), 94(9), 93(10), 95(11), 96(12), 98(13), 255(14)>
|
|
<L15>:
|
|
# DEBUG mode => mode_4
|
|
# DEBUG BEGIN_STMT
|
|
return mode_4;
|
|
|
|
}
|
|
|
|
|