mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 09:53:59 +09:00
823 lines
14 KiB
Plaintext
823 lines
14 KiB
Plaintext
PIT_0_ISR ()
|
|
{
|
|
uint32 temp;
|
|
uint8 channel;
|
|
uint8 instance;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
instance = 0;
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
temp = 0;
|
|
# DEBUG BEGIN_STMT
|
|
channel = 0;
|
|
goto <bb 6>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
temp = Pit_Ip_GetInterruptFlags (instance, channel);
|
|
# DEBUG BEGIN_STMT
|
|
if (temp == 1)
|
|
goto <bb 4>; [INV]
|
|
else
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_ProcessCommonInterrupt (instance, channel);
|
|
|
|
<bb 5> :
|
|
# DEBUG BEGIN_STMT
|
|
channel.1_1 = channel;
|
|
channel = channel.1_1 + 1;
|
|
|
|
<bb 6> :
|
|
# DEBUG BEGIN_STMT
|
|
if (channel <= 4)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 7>; [INV]
|
|
|
|
<bb 7> :
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetLifetimeTimer (uint8 instance)
|
|
{
|
|
uint32 valueL;
|
|
uint32 valueH;
|
|
uint64 lifeTimeValue;
|
|
uint64 D.4662;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
lifeTimeValue = 0;
|
|
# DEBUG BEGIN_STMT
|
|
valueH = 0;
|
|
# DEBUG BEGIN_STMT
|
|
valueL = 0;
|
|
# DEBUG BEGIN_STMT
|
|
valueH = Pit_Ip_GetUpperLifetimerValue (instance);
|
|
# DEBUG BEGIN_STMT
|
|
valueL = Pit_Ip_GetLowerLifetimerValue (instance);
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (long long unsigned int) valueH;
|
|
_2 = _1 << 32;
|
|
_3 = (long long unsigned int) valueL;
|
|
lifeTimeValue = _2 + _3;
|
|
# DEBUG BEGIN_STMT
|
|
D.4662 = lifeTimeValue;
|
|
return D.4662;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_SetLifetimeTimerCount (uint8 instance)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_SetCounterValue (instance, 1, 4294967295);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableInterrupt (instance, 1, 0);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_SetChainMode (instance, 1, 1);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableTimer (instance, 1, 1);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_SetCounterValue (instance, 0, 4294967295);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableTimer (instance, 0, 1);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_DisableChannelInterrupt (uint8 instance, uint8 channel)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableInterrupt (instance, channel, 0);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_ClearInterruptFlag (instance, channel);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_EnableChannelInterrupt (uint8 instance, uint8 channel)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_ClearInterruptFlag (instance, channel);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableInterrupt (instance, channel, 1);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetCurrentTimer (uint8 instance, uint8 channel)
|
|
{
|
|
uint64 counterValue;
|
|
uint64 D.4654;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
counterValue = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = Pit_Ip_GetCounterValue (instance, channel);
|
|
counterValue = (uint64) _1;
|
|
# DEBUG BEGIN_STMT
|
|
D.4654 = counterValue;
|
|
return D.4654;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_StopChannel (uint8 instance, uint8 channel)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableTimer (instance, channel, 0);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_ClearInterruptFlag (instance, channel);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_StartChannel (uint8 instance, uint8 channel, uint32 countValue)
|
|
{
|
|
boolean isRunning;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
isRunning = 0;
|
|
# DEBUG BEGIN_STMT
|
|
isRunning = Pit_Ip_IsChannelRunning (instance, channel);
|
|
# DEBUG BEGIN_STMT
|
|
_1 = ~isRunning;
|
|
if (_1 != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
_2 = countValue + 4294967295;
|
|
Pit_Ip_SetCounterValue (instance, channel, _2);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableTimer (instance, channel, 1);
|
|
|
|
<bb 4> :
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_Deinit (uint8 instance)
|
|
{
|
|
boolean rtiChannelExists;
|
|
uint8 channelNum;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
channelNum = 0;
|
|
# DEBUG BEGIN_STMT
|
|
rtiChannelExists = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
switch (_1) <default: <L5> [INV], case 0: <L0> [INV], case 1: <L1> [INV], case 2: <L2> [INV]>
|
|
|
|
<bb 3> :
|
|
<L0>:
|
|
# DEBUG BEGIN_STMT
|
|
channelNum = 5;
|
|
# DEBUG BEGIN_STMT
|
|
rtiChannelExists = 1;
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 6>; [INV]
|
|
|
|
<bb 4> :
|
|
<L1>:
|
|
# DEBUG BEGIN_STMT
|
|
channelNum = 4;
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 6>; [INV]
|
|
|
|
<bb 5> :
|
|
<L2>:
|
|
# DEBUG BEGIN_STMT
|
|
channelNum = 4;
|
|
# DEBUG BEGIN_STMT
|
|
|
|
<bb 6> :
|
|
<L5>:
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_Reset (instance, channelNum, rtiChannelExists);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_InitChannel (uint8 instance, const struct Pit_Ip_ChannelConfigType * chnlConfig)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = chnlConfig->hwChannel;
|
|
Pit_Ip_EnableTimer (instance, _1, 0);
|
|
# DEBUG BEGIN_STMT
|
|
_2 = chnlConfig->hwChannel;
|
|
Pit_Ip_EnableInterrupt (instance, _2, 0);
|
|
# DEBUG BEGIN_STMT
|
|
_3 = chnlConfig->hwChannel;
|
|
Pit_Ip_ClearInterruptFlag (instance, _3);
|
|
# DEBUG BEGIN_STMT
|
|
_4 = (int) instance;
|
|
_5 = chnlConfig->hwChannel;
|
|
_6 = (int) _5;
|
|
Pit_Ip_u32ChState[_4][_6].chInit = 1;
|
|
# DEBUG BEGIN_STMT
|
|
_7 = (int) instance;
|
|
_8 = chnlConfig->hwChannel;
|
|
_9 = (int) _8;
|
|
_10 = chnlConfig->callback;
|
|
Pit_Ip_u32ChState[_7][_9].callback = _10;
|
|
# DEBUG BEGIN_STMT
|
|
_11 = (int) instance;
|
|
_12 = chnlConfig->hwChannel;
|
|
_13 = (int) _12;
|
|
_14 = chnlConfig->callbackParam;
|
|
Pit_Ip_u32ChState[_11][_13].callbackParam = _14;
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_Init (uint8 instance, const struct Pit_Ip_InstanceConfigType * config)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_1 = config->enableStandardTimers;
|
|
if (_1 != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_EnableModule (instance, 0);
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_2 = config->stopRunInDebug;
|
|
Pit_Ip_SetDebugMode (instance, _2);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_ProcessCommonInterrupt (uint8 instance, uint8 channel)
|
|
{
|
|
uint32 temp2;
|
|
uint32 temp1;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
temp1 = Pit_Ip_GetInterruptFlags (instance, channel);
|
|
# DEBUG BEGIN_STMT
|
|
temp2 = Pit_Ip_GetInterruptBit (instance, channel);
|
|
# DEBUG BEGIN_STMT
|
|
Pit_Ip_ClearInterruptFlag (instance, channel);
|
|
# DEBUG BEGIN_STMT
|
|
if (temp1 == 1)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 7>; [INV]
|
|
|
|
<bb 3> :
|
|
if (temp2 == 1)
|
|
goto <bb 4>; [INV]
|
|
else
|
|
goto <bb 7>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = (int) channel;
|
|
_3 = Pit_Ip_u32ChState[_1][_2].chInit;
|
|
if (_3 != 0)
|
|
goto <bb 5>; [INV]
|
|
else
|
|
goto <bb 7>; [INV]
|
|
|
|
<bb 5> :
|
|
_4 = (int) instance;
|
|
_5 = (int) channel;
|
|
_6 = Pit_Ip_u32ChState[_4][_5].callback;
|
|
if (_6 != 0B)
|
|
goto <bb 6>; [INV]
|
|
else
|
|
goto <bb 7>; [INV]
|
|
|
|
<bb 6> :
|
|
# DEBUG BEGIN_STMT
|
|
_7 = (int) instance;
|
|
_8 = (int) channel;
|
|
_9 = Pit_Ip_u32ChState[_7][_8].callback;
|
|
_10 = (int) instance;
|
|
_11 = (int) channel;
|
|
_12 = Pit_Ip_u32ChState[_10][_11].callbackParam;
|
|
_9 (_12);
|
|
|
|
<bb 7> :
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetLowerLifetimerValue (uint8 instance)
|
|
{
|
|
uint32 lowerValue;
|
|
uint32 D.4666;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
lowerValue = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
lowerValue = _2->LTMR64L;
|
|
# DEBUG BEGIN_STMT
|
|
D.4666 = lowerValue;
|
|
return D.4666;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetUpperLifetimerValue (uint8 instance)
|
|
{
|
|
uint32 upperValue;
|
|
uint32 D.4664;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
upperValue = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
upperValue = _2->LTMR64H;
|
|
# DEBUG BEGIN_STMT
|
|
D.4664 = upperValue;
|
|
return D.4664;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetInterruptBit (uint8 instance, uint8 channel)
|
|
{
|
|
uint32 returnFlag;
|
|
uint32 D.4678;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
returnFlag = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_4 = _2->TIMER[_3].TCTRL;
|
|
_5 = _4 >> 1;
|
|
returnFlag = _5 & 1;
|
|
# DEBUG BEGIN_STMT
|
|
D.4678 = returnFlag;
|
|
return D.4678;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_ClearInterruptFlag (uint8 instance, uint8 channel)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_03 ();
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_4 = _2->TIMER[_3].TFLG;
|
|
_5 = (int) instance;
|
|
_6 = pitBase[_5];
|
|
_7 = (int) channel;
|
|
_8 = _4 | 1;
|
|
_6->TIMER[_7].TFLG = _8;
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_03 ();
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_EnableInterrupt (uint8 instance, uint8 channel, boolean enable)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_02 ();
|
|
# DEBUG BEGIN_STMT
|
|
if (enable != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_4 = _2->TIMER[_3].TCTRL;
|
|
_5 = (int) instance;
|
|
_6 = pitBase[_5];
|
|
_7 = (int) channel;
|
|
_8 = _4 | 2;
|
|
_6->TIMER[_7].TCTRL = _8;
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_9 = (int) instance;
|
|
_10 = pitBase[_9];
|
|
_11 = (int) channel;
|
|
_12 = _10->TIMER[_11].TCTRL;
|
|
_13 = (int) instance;
|
|
_14 = pitBase[_13];
|
|
_15 = (int) channel;
|
|
_16 = _12 & 4294967293;
|
|
_14->TIMER[_15].TCTRL = _16;
|
|
|
|
<bb 5> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_02 ();
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetCounterValue (uint8 instance, uint8 channel)
|
|
{
|
|
uint32 counterValue;
|
|
uint32 D.4656;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
counterValue = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
counterValue = _2->TIMER[_3].CVAL;
|
|
# DEBUG BEGIN_STMT
|
|
D.4656 = counterValue;
|
|
return D.4656;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_SetCounterValue (uint8 instance, uint8 channel, uint32 value)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_2->TIMER[_3].LDVAL = value;
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_IsChannelRunning (uint8 instance, uint8 channel)
|
|
{
|
|
boolean isRunning;
|
|
boolean D.4652;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
isRunning = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_4 = _2->TIMER[_3].TCTRL;
|
|
_5 = _4 & 1;
|
|
isRunning = _5 == 1;
|
|
# DEBUG BEGIN_STMT
|
|
D.4652 = isRunning;
|
|
return D.4652;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_Reset (uint8 instance, uint8 channelNum, boolean available)
|
|
{
|
|
uint8 i;
|
|
uint32 channelIndex;
|
|
uint32 mask;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
mask = 0;
|
|
# DEBUG BEGIN_STMT
|
|
channelIndex = (uint32) channelNum;
|
|
# DEBUG BEGIN_STMT
|
|
if (available != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
channelIndex = channelIndex + 4294967295;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_2->RTI_TCTRL = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_3 = (int) instance;
|
|
_4 = pitBase[_3];
|
|
_4->RTI_LDVAL = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_5 = (int) instance;
|
|
_6 = pitBase[_5];
|
|
_6->RTI_TFLG = 1;
|
|
# DEBUG BEGIN_STMT
|
|
mask = 6;
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
mask = 2;
|
|
|
|
<bb 5> :
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
i = 0;
|
|
goto <bb 7>; [INV]
|
|
|
|
<bb 6> :
|
|
# DEBUG BEGIN_STMT
|
|
_7 = (int) instance;
|
|
_8 = pitBase[_7];
|
|
_9 = (int) i;
|
|
_8->TIMER[_9].TCTRL = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_10 = (int) instance;
|
|
_11 = pitBase[_10];
|
|
_12 = (int) i;
|
|
_11->TIMER[_12].LDVAL = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_13 = (int) instance;
|
|
_14 = pitBase[_13];
|
|
_15 = (int) i;
|
|
_14->TIMER[_15].TFLG = 1;
|
|
# DEBUG BEGIN_STMT
|
|
i.0_16 = i;
|
|
i = i.0_16 + 1;
|
|
|
|
<bb 7> :
|
|
# DEBUG BEGIN_STMT
|
|
_17 = (long unsigned int) i;
|
|
if (channelIndex > _17)
|
|
goto <bb 6>; [INV]
|
|
else
|
|
goto <bb 8>; [INV]
|
|
|
|
<bb 8> :
|
|
# DEBUG BEGIN_STMT
|
|
_18 = (int) instance;
|
|
_19 = pitBase[_18];
|
|
_19->MCR = mask;
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_SetChainMode (uint8 instance, uint8 channel, boolean enable)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_01 ();
|
|
# DEBUG BEGIN_STMT
|
|
if (enable != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 3> :
|
|
if (channel != 0)
|
|
goto <bb 4>; [INV]
|
|
else
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_4 = _2->TIMER[_3].TCTRL;
|
|
_5 = (int) instance;
|
|
_6 = pitBase[_5];
|
|
_7 = (int) channel;
|
|
_8 = _4 | 4;
|
|
_6->TIMER[_7].TCTRL = _8;
|
|
goto <bb 6>; [INV]
|
|
|
|
<bb 5> :
|
|
# DEBUG BEGIN_STMT
|
|
_9 = (int) instance;
|
|
_10 = pitBase[_9];
|
|
_11 = (int) channel;
|
|
_12 = _10->TIMER[_11].TCTRL;
|
|
_13 = (int) instance;
|
|
_14 = pitBase[_13];
|
|
_15 = (int) channel;
|
|
_16 = _12 & 4294967291;
|
|
_14->TIMER[_15].TCTRL = _16;
|
|
|
|
<bb 6> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_01 ();
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_SetDebugMode (uint8 instance, boolean stopRun)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
if (stopRun != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = _2->MCR;
|
|
_4 = (int) instance;
|
|
_5 = pitBase[_4];
|
|
_6 = _3 | 1;
|
|
_5->MCR = _6;
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_7 = (int) instance;
|
|
_8 = pitBase[_7];
|
|
_9 = _8->MCR;
|
|
_10 = (int) instance;
|
|
_11 = pitBase[_10];
|
|
_12 = _9 & 4294967294;
|
|
_11->MCR = _12;
|
|
|
|
<bb 5> :
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_EnableTimer (uint8 instance, uint8 channel, boolean enable)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_00 ();
|
|
# DEBUG BEGIN_STMT
|
|
if (enable != 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
_4 = _2->TIMER[_3].TCTRL;
|
|
_5 = (int) instance;
|
|
_6 = pitBase[_5];
|
|
_7 = (int) channel;
|
|
_8 = _4 | 1;
|
|
_6->TIMER[_7].TCTRL = _8;
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_9 = (int) instance;
|
|
_10 = pitBase[_9];
|
|
_11 = (int) channel;
|
|
_12 = _10->TIMER[_11].TCTRL;
|
|
_13 = (int) instance;
|
|
_14 = pitBase[_13];
|
|
_15 = (int) channel;
|
|
_16 = _12 & 4294967294;
|
|
_14->TIMER[_15].TCTRL = _16;
|
|
|
|
<bb 5> :
|
|
# DEBUG BEGIN_STMT
|
|
SchM_Exit_Gpt_GPT_EXCLUSIVE_AREA_00 ();
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_EnableModule (uint8 instance, uint8 timerType)
|
|
{
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
if (timerType == 0)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = _2->MCR;
|
|
_4 = (int) instance;
|
|
_5 = pitBase[_4];
|
|
_6 = _3 & 4294967293;
|
|
_5->MCR = _6;
|
|
|
|
<bb 4> :
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetInterruptFlags (uint8 instance, uint8 channel)
|
|
{
|
|
uint32 returnFlag;
|
|
uint32 D.4631;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
returnFlag = 0;
|
|
# DEBUG BEGIN_STMT
|
|
if (channel == 4)
|
|
goto <bb 3>; [INV]
|
|
else
|
|
goto <bb 4>; [INV]
|
|
|
|
<bb 3> :
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = _2->RTI_TFLG;
|
|
returnFlag = _3 & 1;
|
|
goto <bb 5>; [INV]
|
|
|
|
<bb 4> :
|
|
# DEBUG BEGIN_STMT
|
|
_4 = (int) instance;
|
|
_5 = pitBase[_4];
|
|
_6 = (int) channel;
|
|
_7 = _5->TIMER[_6].TFLG;
|
|
returnFlag = _7 & 1;
|
|
|
|
<bb 5> :
|
|
# DEBUG BEGIN_STMT
|
|
D.4631 = returnFlag;
|
|
return D.4631;
|
|
|
|
}
|
|
|
|
|
|
Pit_Ip_GetLoadValue (uint8 instance, uint8 channel)
|
|
{
|
|
uint32 periodValue;
|
|
uint32 D.4626;
|
|
|
|
<bb 2> :
|
|
# DEBUG BEGIN_STMT
|
|
periodValue = 0;
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance;
|
|
_2 = pitBase[_1];
|
|
_3 = (int) channel;
|
|
periodValue = _2->TIMER[_3].LDVAL;
|
|
# DEBUG BEGIN_STMT
|
|
D.4626 = periodValue;
|
|
return D.4626;
|
|
|
|
}
|
|
|
|
|