ADM/GW/Debug_FLASH/RTD/src/Lpspi_Ip.c.016i.visibility
2024-08-08 10:00:15 +09:00

2326 lines
49 KiB
Plaintext

Marking local functions: Lpspi_TransmitRxInit Lpspi_TransmitTxInit Lpspi_Ip_TransferProcess Lpspi_Ip_PushDataProcess Lpspi_Ip_PushData Lpspi_Ip_ReadData DevAssert
Marking externally visible functions: Lpspi_Ip_GetStatus Lpspi_Ip_IrqHandler Lpspi_Ip_Cancel Lpspi_Ip_UpdateTransferMode Lpspi_Ip_UpdateDefaultTransmitData Lpspi_Ip_UpdateLsb Lpspi_Ip_UpdateFrameSize Lpspi_Ip_ManageBuffers Lpspi_Ip_AsyncTransmit Lpspi_Ip_SyncTransmit Lpspi_Ip_DeInit Lpspi_Ip_Init
Marking externally visible variables: Lpspi_Ip_StateStructureArray Lpspi_Ip_StateStructure
Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:
Symbol table:
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_10/34 (SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_10) @06b4da80
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_Cancel/19
Calls:
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_10/33 (SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_10) @06b4d9a0
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_Cancel/19
Calls:
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_12/32 (SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_12) @06b4d460
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_TransferProcess/7
Calls:
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_12/31 (SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_12) @06b4d380
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_TransferProcess/7
Calls:
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_09/30 (SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_09) @06b4d000
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_AsyncTransmit/13
Calls:
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_09/29 (SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_09) @06a561c0
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_AsyncTransmit/13
Calls:
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_11/28 (SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_11) @06a569a0
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_TransmitTxInit/11
Calls:
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_11/27 (SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_11) @06a568c0
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_TransmitTxInit/11
Calls:
OsIf_GetElapsed/26 (OsIf_GetElapsed) @06a56700
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_SyncTransmit/10
Calls:
OsIf_GetCounter/25 (OsIf_GetCounter) @06a56620
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_SyncTransmit/10
Calls:
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_08/24 (SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_08) @06a56540
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_SyncTransmit/10
Calls:
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_08/23 (SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_08) @06a56460
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_SyncTransmit/10
Calls:
OsIf_MicrosToTicks/22 (OsIf_MicrosToTicks) @06a56380
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags: optimize_size
Called by: Lpspi_Ip_SyncTransmit/10
Calls:
Lpspi_Ip_GetStatus/21 (Lpspi_Ip_GetStatus) @06a490e0
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: DevAssert/0
Lpspi_Ip_IrqHandler/20 (Lpspi_Ip_IrqHandler) @06a49d20
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: Lpspi_Ip_TransferProcess/7
Lpspi_Ip_Cancel/19 (Lpspi_Ip_Cancel) @06a49a80
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_10/34 SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_10/33 DevAssert/0 DevAssert/0
Lpspi_Ip_UpdateTransferMode/18 (Lpspi_Ip_UpdateTransferMode) @06a497e0
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by: Lpspi_Ip_Init/8
Calls: DevAssert/0 DevAssert/0
Lpspi_Ip_UpdateDefaultTransmitData/17 (Lpspi_Ip_UpdateDefaultTransmitData) @06a49540
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: DevAssert/0 DevAssert/0
Lpspi_Ip_UpdateLsb/16 (Lpspi_Ip_UpdateLsb) @06a492a0
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: DevAssert/0 DevAssert/0
Lpspi_Ip_UpdateFrameSize/15 (Lpspi_Ip_UpdateFrameSize) @06a49000
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: DevAssert/0 DevAssert/0 DevAssert/0
Lpspi_Ip_ManageBuffers/14 (Lpspi_Ip_ManageBuffers) @06a129a0
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: Lpspi_Ip_TransferProcess/7 DevAssert/0 DevAssert/0
Lpspi_Ip_AsyncTransmit/13 (Lpspi_Ip_AsyncTransmit) @06a12380
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: Lpspi_TransmitRxInit/12 Lpspi_TransmitTxInit/11 SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_09/30 SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_09/30 SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_09/29 DevAssert/0 DevAssert/0 DevAssert/0 DevAssert/0 DevAssert/0
Lpspi_TransmitRxInit/12 (Lpspi_TransmitRxInit) @06a12ee0
Type: function definition analyzed
Visibility: prevailing_def_ironly
References: Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_SyncTransmit/10
Calls:
Lpspi_TransmitTxInit/11 (Lpspi_TransmitTxInit) @06a12c40
Type: function definition analyzed
Visibility: prevailing_def_ironly
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_SyncTransmit/10
Calls: SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_11/28 SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_11/27
Lpspi_Ip_SyncTransmit/10 (Lpspi_Ip_SyncTransmit) @06a128c0
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: OsIf_GetElapsed/26 Lpspi_Ip_PushDataProcess/6 Lpspi_Ip_ReadData/4 OsIf_GetCounter/25 Lpspi_TransmitRxInit/12 Lpspi_TransmitTxInit/11 SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_08/24 SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_08/24 SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_08/23 DevAssert/0 DevAssert/0 DevAssert/0 DevAssert/0 DevAssert/0 DevAssert/0 OsIf_MicrosToTicks/22
Lpspi_Ip_DeInit/9 (Lpspi_Ip_DeInit) @06a12620
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)Lpspi_Ip_StateStructureArray/2 (write)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: DevAssert/0 DevAssert/0
Lpspi_Ip_Init/8 (Lpspi_Ip_Init) @06a122a0
Type: function definition analyzed
Visibility: externally_visible public
References: Lpspi_Ip_StateStructureArray/2 (read)Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (write)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: available
Function flags: body optimize_size
Called by:
Calls: Lpspi_Ip_UpdateTransferMode/18 DevAssert/0 DevAssert/0
Lpspi_Ip_TransferProcess/7 (Lpspi_Ip_TransferProcess) @06a12000
Type: function definition analyzed
Visibility: prevailing_def_ironly
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_IrqHandler/20 Lpspi_Ip_ManageBuffers/14
Calls: SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_12/32 SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_12/31 Lpspi_Ip_PushDataProcess/6 Lpspi_Ip_ReadData/4
Indirect call
Indirect call
Lpspi_Ip_PushDataProcess/6 (Lpspi_Ip_PushDataProcess) @0699ac40
Type: function definition analyzed
Visibility: prevailing_def_ironly
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_TransferProcess/7 Lpspi_Ip_SyncTransmit/10
Calls: Lpspi_Ip_PushData/5
Lpspi_Ip_PushData/5 (Lpspi_Ip_PushData) @0699ae00
Type: function definition analyzed
Visibility: prevailing_def_ironly
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_PushDataProcess/6
Calls:
Lpspi_Ip_ReadData/4 (Lpspi_Ip_ReadData) @0699ab60
Type: function definition analyzed
Visibility: prevailing_def_ironly
References: Lpspi_Ip_Bases/3 (read)Lpspi_Ip_StateStructureArray/2 (read)
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_TransferProcess/7 Lpspi_Ip_SyncTransmit/10
Calls:
Lpspi_Ip_Bases/3 (Lpspi_Ip_Bases) @06999048
Type: variable definition analyzed
Visibility: prevailing_def_ironly
References:
Referring: Lpspi_Ip_Init/8 (read)Lpspi_Ip_DeInit/9 (read)Lpspi_Ip_SyncTransmit/10 (read)Lpspi_TransmitTxInit/11 (read)Lpspi_Ip_ReadData/4 (read)Lpspi_Ip_PushDataProcess/6 (read)Lpspi_Ip_PushData/5 (read)Lpspi_Ip_AsyncTransmit/13 (read)Lpspi_Ip_ManageBuffers/14 (read)Lpspi_Ip_TransferProcess/7 (read)Lpspi_Ip_Cancel/19 (read)Lpspi_Ip_IrqHandler/20 (read)
Availability: available
Varpool flags: initialized read-only const-value-known
Lpspi_Ip_StateStructureArray/2 (Lpspi_Ip_StateStructureArray) @06993f30
Type: variable definition analyzed
Visibility: externally_visible public
References:
Referring: Lpspi_Ip_Init/8 (read)Lpspi_Ip_Init/8 (write)Lpspi_Ip_Init/8 (read)Lpspi_Ip_DeInit/9 (read)Lpspi_Ip_DeInit/9 (write)Lpspi_Ip_SyncTransmit/10 (read)Lpspi_TransmitTxInit/11 (read)Lpspi_TransmitRxInit/12 (read)Lpspi_Ip_ReadData/4 (read)Lpspi_Ip_PushDataProcess/6 (read)Lpspi_Ip_PushData/5 (read)Lpspi_Ip_AsyncTransmit/13 (read)Lpspi_Ip_ManageBuffers/14 (read)Lpspi_Ip_TransferProcess/7 (read)Lpspi_Ip_UpdateFrameSize/15 (read)Lpspi_Ip_UpdateLsb/16 (read)Lpspi_Ip_UpdateDefaultTransmitData/17 (read)Lpspi_Ip_UpdateTransferMode/18 (read)Lpspi_Ip_Cancel/19 (read)Lpspi_Ip_IrqHandler/20 (read)Lpspi_Ip_GetStatus/21 (read)
Availability: available
Varpool flags:
Lpspi_Ip_StateStructure/1 (Lpspi_Ip_StateStructure) @06993e58
Type: variable definition analyzed
Visibility: externally_visible public
References:
Referring:
Availability: available
Varpool flags:
DevAssert/0 (DevAssert) @069968c0
Type: function definition analyzed
Visibility: prevailing_def_ironly
References:
Referring:
Availability: local
Function flags: body local optimize_size
Called by: Lpspi_Ip_GetStatus/21 Lpspi_Ip_Cancel/19 Lpspi_Ip_Cancel/19 Lpspi_Ip_UpdateTransferMode/18 Lpspi_Ip_UpdateTransferMode/18 Lpspi_Ip_UpdateDefaultTransmitData/17 Lpspi_Ip_UpdateDefaultTransmitData/17 Lpspi_Ip_UpdateLsb/16 Lpspi_Ip_UpdateLsb/16 Lpspi_Ip_UpdateFrameSize/15 Lpspi_Ip_UpdateFrameSize/15 Lpspi_Ip_UpdateFrameSize/15 Lpspi_Ip_ManageBuffers/14 Lpspi_Ip_ManageBuffers/14 Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_AsyncTransmit/13 Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_SyncTransmit/10 Lpspi_Ip_DeInit/9 Lpspi_Ip_DeInit/9 Lpspi_Ip_Init/8 Lpspi_Ip_Init/8
Calls:
Lpspi_Ip_GetStatus (uint8 u8Instance)
{
Lpspi_Ip_HwStatusType status;
const struct Lpspi_Ip_StateStructureType * state;
Lpspi_Ip_HwStatusType D.4883;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
if (u8Instance > 5)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
goto <bb 6>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_1];
# DEBUG BEGIN_STMT
if (state != 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
status = state->status;
<bb 6> :
# DEBUG BEGIN_STMT
D.4883 = status;
return D.4883;
}
Lpspi_Ip_IrqHandler (uint8 u8Instance)
{
uint32 u32IrqFlags;
const struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
long unsigned int D.4873;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
u32IrqFlags = 0;
# DEBUG BEGIN_STMT
if (state != 0B)
goto <bb 3>; [INV]
else
goto <bb 6>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
_3 = base->SR;
u32IrqFlags = _3 & 6147;
# DEBUG BEGIN_STMT
_4 = base->IER;
D.4873 = _4 & 6147;
u32IrqFlags = D.4873 & u32IrqFlags;
# DEBUG BEGIN_STMT
if (u32IrqFlags != 0)
goto <bb 4>; [INV]
else
goto <bb 5>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
Lpspi_Ip_TransferProcess (u8Instance);
goto <bb 7>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
_5 = base->SR;
base->SR = _5;
goto <bb 7>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_6 = base->SR;
base->SR = _6;
<bb 7> :
return;
}
Lpspi_Ip_Cancel (uint8 u8Instance)
{
uint32 u32Cfgr1;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
u32Cfgr1 = 0;
# DEBUG BEGIN_STMT
if (u8Instance > 5)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_10 ();
# DEBUG BEGIN_STMT
_3 = state->status;
if (_3 == 2)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_4 = base->CR;
_5 = _4 & 4294967294;
base->CR = _5;
# DEBUG BEGIN_STMT
u32Cfgr1 = base->CFGR1;
# DEBUG BEGIN_STMT
_6 = base->CR;
_7 = _6 | 2;
base->CR = _7;
# DEBUG BEGIN_STMT
_8 = base->CR;
_9 = _8 & 4294967293;
base->CR = _9;
# DEBUG BEGIN_STMT
base->CFGR1 = u32Cfgr1;
# DEBUG BEGIN_STMT
state->status = 1;
<bb 8> :
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_10 ();
<bb 9> :
return;
}
Lpspi_Ip_UpdateTransferMode (uint8 u8Instance, Lpspi_Ip_ModeType Mode)
{
Lpspi_Ip_StatusType status;
struct Lpspi_Ip_StateStructureType * state;
Lpspi_Ip_StatusType D.4861;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
if (u8Instance > 5)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_1];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_2 = state->status;
if (_2 != 2)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
state->transferMode = Mode;
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
status = 1;
<bb 9> :
# DEBUG BEGIN_STMT
D.4861 = status;
return D.4861;
}
Lpspi_Ip_UpdateDefaultTransmitData (const struct Lpspi_Ip_ExternalDeviceType * pExternalDevice, uint32 u32DefaultData)
{
Lpspi_Ip_StatusType status;
const struct Lpspi_Ip_StateStructureType * state;
Lpspi_Ip_StatusType D.4850;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
if (pExternalDevice == 0B)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = pExternalDevice->u8Instance;
_2 = (int) _1;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_3 = state->status;
if (_3 != 2)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_4 = pExternalDevice->pDeviceParams;
_4->u32DefaultData = u32DefaultData;
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
status = 1;
<bb 9> :
# DEBUG BEGIN_STMT
D.4850 = status;
return D.4850;
}
Lpspi_Ip_UpdateLsb (const struct Lpspi_Ip_ExternalDeviceType * pExternalDevice, boolean bLsb)
{
Lpspi_Ip_StatusType status;
const struct Lpspi_Ip_StateStructureType * state;
Lpspi_Ip_StatusType D.4839;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
if (pExternalDevice == 0B)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = pExternalDevice->u8Instance;
_2 = (int) _1;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_3 = state->status;
if (_3 != 2)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_4 = pExternalDevice->pDeviceParams;
_4->lsb = bLsb;
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
status = 1;
<bb 9> :
# DEBUG BEGIN_STMT
D.4839 = status;
return D.4839;
}
Lpspi_Ip_UpdateFrameSize (const struct Lpspi_Ip_ExternalDeviceType * pExternalDevice, uint8 u8FrameSize)
{
Lpspi_Ip_StatusType status;
const struct Lpspi_Ip_StateStructureType * state;
Lpspi_Ip_StatusType D.4828;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
if (pExternalDevice == 0B)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 11>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = u8FrameSize + 252;
if (_1 > 28)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 11>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_2 = pExternalDevice->u8Instance;
_3 = (int) _2;
state = Lpspi_Ip_StateStructureArray[_3];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 11>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
_4 = state->status;
if (_4 != 2)
goto <bb 9>; [INV]
else
goto <bb 10>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
_5 = pExternalDevice->pDeviceParams;
_5->u8FrameSize = u8FrameSize;
goto <bb 11>; [INV]
<bb 10> :
# DEBUG BEGIN_STMT
status = 1;
<bb 11> :
# DEBUG BEGIN_STMT
D.4828 = status;
return D.4828;
}
Lpspi_Ip_ManageBuffers (uint8 u8Instance)
{
const struct Lpspi_Ip_StateStructureType * state;
const struct LPSPI_Type * base;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
if (u8Instance > 5)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_3 = state->transferMode;
if (_3 == 0)
goto <bb 7>; [INV]
else
goto <bb 9>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_4 = base->SR;
_5 = _4 & 3;
if (_5 != 0)
goto <bb 8>; [INV]
else
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
Lpspi_Ip_TransferProcess (u8Instance);
<bb 9> :
return;
}
Lpspi_Ip_AsyncTransmit (const struct Lpspi_Ip_ExternalDeviceType * pExternalDevice, uint8 * pu8TxBuffer, uint8 * pu8RxBuffer, uint16 u16Length, void (*Lpspi_Ip_CallbackType) (uint8, Lpspi_Ip_EventType) EndCallback)
{
uint8 u8Instance;
Lpspi_Ip_StatusType status;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
Lpspi_Ip_StatusType D.4778;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
u8Instance = 0;
# DEBUG BEGIN_STMT
if (pExternalDevice == 0B)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 20>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
if (u16Length == 0)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 20>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
u8Instance = pExternalDevice->u8Instance;
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 14>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
_3 = pExternalDevice->pDeviceParams;
_4 = _3->u8FrameSize;
if (_4 > 16)
goto <bb 9>; [INV]
else
goto <bb 11>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
_5 = u16Length & 3;
if (_5 != 0)
goto <bb 10>; [INV]
else
goto <bb 14>; [INV]
<bb 10> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 14>; [INV]
<bb 11> :
# DEBUG BEGIN_STMT
_6 = pExternalDevice->pDeviceParams;
_7 = _6->u8FrameSize;
if (_7 > 8)
goto <bb 12>; [INV]
else
goto <bb 14>; [INV]
<bb 12> :
# DEBUG BEGIN_STMT
_8 = u16Length & 1;
if (_8 != 0)
goto <bb 13>; [INV]
else
goto <bb 14>; [INV]
<bb 13> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
<bb 14> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
if (status != 1)
goto <bb 15>; [INV]
else
goto <bb 20>; [INV]
<bb 15> :
# DEBUG BEGIN_STMT
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_09 ();
# DEBUG BEGIN_STMT
_9 = state->status;
if (_9 == 2)
goto <bb 16>; [INV]
else
goto <bb 17>; [INV]
<bb 16> :
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_09 ();
# DEBUG BEGIN_STMT
status = 1;
goto <bb 20>; [INV]
<bb 17> :
# DEBUG BEGIN_STMT
state->status = 2;
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_09 ();
# DEBUG BEGIN_STMT
_10 = pExternalDevice->pDeviceParams;
_11 = _10->u8FrameSize;
state->u8FrameSize = _11;
# DEBUG BEGIN_STMT
_12 = pExternalDevice->pDeviceParams;
_13 = _12->lsb;
state->lsb = _13;
# DEBUG BEGIN_STMT
_14 = pExternalDevice->pDeviceParams;
_15 = _14->u32DefaultData;
state->u32DefaultData = _15;
# DEBUG BEGIN_STMT
state->pExternalDevice = pExternalDevice;
# DEBUG BEGIN_STMT
state->callback = EndCallback;
# DEBUG BEGIN_STMT
Lpspi_TransmitTxInit (u8Instance, pu8TxBuffer, u16Length);
# DEBUG BEGIN_STMT
Lpspi_TransmitRxInit (u8Instance, pu8RxBuffer, u16Length);
# DEBUG BEGIN_STMT
base->DER = 0;
# DEBUG BEGIN_STMT
_16 = state->transferMode;
_17 = (int) _16;
switch (_17) <default: <L29> [INV], case 0: <L20> [INV], case 1: <L21> [INV]>
<bb 18> :
<L20>:
# DEBUG BEGIN_STMT
base->IER = 0;
# DEBUG BEGIN_STMT
goto <bb 20>; [INV]
<bb 19> :
<L21>:
# DEBUG BEGIN_STMT
base->IER = 6147;
# DEBUG BEGIN_STMT
<bb 20> :
<L29>:
# DEBUG BEGIN_STMT
D.4778 = status;
return D.4778;
}
Lpspi_TransmitRxInit (uint8 u8Instance, uint8 * pu8RxBuffer, uint16 numberOfFrames)
{
struct Lpspi_Ip_StateStructureType * state;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_1];
# DEBUG BEGIN_STMT
state->rxIndex = 0;
# DEBUG BEGIN_STMT
state->pu8RxBuffer = pu8RxBuffer;
# DEBUG BEGIN_STMT
_2 = state->u8FrameSize;
if (_2 <= 8)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
state->expectedFifoReads = numberOfFrames;
goto <bb 7>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_3 = state->u8FrameSize;
if (_3 <= 16)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
_4 = numberOfFrames / 2;
state->expectedFifoReads = _4;
goto <bb 7>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_5 = numberOfFrames / 4;
state->expectedFifoReads = _5;
<bb 7> :
return;
}
Lpspi_TransmitTxInit (uint8 u8Instance, uint8 * pu8TxBuffer, uint16 numberOfFrames)
{
uint32 u32Cfgr1;
uint32 u32TransferCommand;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
u32TransferCommand = 0;
# DEBUG BEGIN_STMT
u32Cfgr1 = 0;
# DEBUG BEGIN_STMT
_3 = state->bFirstCmd;
if (_3 != 0)
goto <bb 3>; [INV]
else
goto <bb 5>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_11 ();
# DEBUG BEGIN_STMT
_4 = base->CR;
_5 = _4 & 4294967294;
base->CR = _5;
# DEBUG BEGIN_STMT
u32Cfgr1 = base->CFGR1;
# DEBUG BEGIN_STMT
_6 = base->CR;
_7 = _6 | 2;
base->CR = _7;
# DEBUG BEGIN_STMT
_8 = base->CR;
_9 = _8 & 4294967293;
base->CR = _9;
# DEBUG BEGIN_STMT
base->CFGR1 = u32Cfgr1;
# DEBUG BEGIN_STMT
_10 = base->SR;
base->SR = _10;
# DEBUG BEGIN_STMT
_11 = state->bSlaveMode;
_12 = ~_11;
if (_12 != 0)
goto <bb 4>; [INV]
else
goto <bb 5>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_13 = state->pExternalDevice;
_14 = _13->ccr;
base->CCR = _14;
<bb 5> :
# DEBUG BEGIN_STMT
_15 = state->pExternalDevice;
_16 = _15->tcr;
_17 = state->u8FrameSize;
_18 = (long unsigned int) _17;
_19 = _18 + 4294967295;
_20 = _19 & 4095;
_21 = _16 | _20;
_22 = state->lsb;
_23 = (long unsigned int) _22;
_24 = _23 << 23;
_25 = _24 & 8388608;
u32TransferCommand = _21 | _25;
# DEBUG BEGIN_STMT
_26 = state->bSlaveMode;
if (_26 != 0)
goto <bb 6>; [INV]
else
goto <bb 7>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
u32TransferCommand = u32TransferCommand & 4292870143;
<bb 7> :
# DEBUG BEGIN_STMT
_27 = state->bFirstCmd;
if (_27 != 0)
goto <bb 8>; [INV]
else
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
base->TCR = u32TransferCommand;
# DEBUG BEGIN_STMT
_28 = base->CR;
_29 = _28 | 1;
base->CR = _29;
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_11 ();
goto <bb 12>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
_30 = u32TransferCommand & 2097152;
if (_30 != 0)
goto <bb 10>; [INV]
else
goto <bb 11>; [INV]
<bb 10> :
# DEBUG BEGIN_STMT
_31 = u32TransferCommand | 1048576;
base->TCR = _31;
goto <bb 12>; [INV]
<bb 11> :
# DEBUG BEGIN_STMT
base->TCR = u32TransferCommand;
<bb 12> :
# DEBUG BEGIN_STMT
state->txIndex = 0;
# DEBUG BEGIN_STMT
state->pu8TxBuffer = pu8TxBuffer;
# DEBUG BEGIN_STMT
_32 = state->u8FrameSize;
if (_32 <= 8)
goto <bb 13>; [INV]
else
goto <bb 14>; [INV]
<bb 13> :
# DEBUG BEGIN_STMT
state->expectedFifoWrites = numberOfFrames;
goto <bb 17>; [INV]
<bb 14> :
# DEBUG BEGIN_STMT
_33 = state->u8FrameSize;
if (_33 <= 16)
goto <bb 15>; [INV]
else
goto <bb 16>; [INV]
<bb 15> :
# DEBUG BEGIN_STMT
_34 = numberOfFrames / 2;
state->expectedFifoWrites = _34;
goto <bb 17>; [INV]
<bb 16> :
# DEBUG BEGIN_STMT
_35 = numberOfFrames / 4;
state->expectedFifoWrites = _35;
<bb 17> :
return;
}
Lpspi_Ip_SyncTransmit (const struct Lpspi_Ip_ExternalDeviceType * pExternalDevice, uint8 * pu8TxBuffer, uint8 * pu8RxBuffer, uint16 u16Length, uint32 u32TimeOut)
{
uint8 u8Instance;
uint32 ElapsedTicks;
uint32 CurrentTicks;
uint32 TimeoutTicks;
Lpspi_Ip_StatusType DataProcessStatus;
Lpspi_Ip_StatusType status;
uint8 numberOfReads;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
Lpspi_Ip_StatusType D.4694;
long unsigned int D.4684;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
DataProcessStatus = 1;
# DEBUG BEGIN_STMT
TimeoutTicks = OsIf_MicrosToTicks (u32TimeOut, 0);
# DEBUG BEGIN_STMT
CurrentTicks = 0;
# DEBUG BEGIN_STMT
ElapsedTicks = 0;
# DEBUG BEGIN_STMT
u8Instance = 0;
# DEBUG BEGIN_STMT
if (pExternalDevice == 0B)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 42>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
if (u16Length == 0)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 42>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
if (u32TimeOut == 0)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 42>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
u8Instance = pExternalDevice->u8Instance;
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 9>; [INV]
else
goto <bb 10>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 16>; [INV]
<bb 10> :
# DEBUG BEGIN_STMT
_3 = pExternalDevice->pDeviceParams;
_4 = _3->u8FrameSize;
if (_4 > 16)
goto <bb 11>; [INV]
else
goto <bb 13>; [INV]
<bb 11> :
# DEBUG BEGIN_STMT
_5 = u16Length & 3;
if (_5 != 0)
goto <bb 12>; [INV]
else
goto <bb 16>; [INV]
<bb 12> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 16>; [INV]
<bb 13> :
# DEBUG BEGIN_STMT
_6 = pExternalDevice->pDeviceParams;
_7 = _6->u8FrameSize;
if (_7 > 8)
goto <bb 14>; [INV]
else
goto <bb 16>; [INV]
<bb 14> :
# DEBUG BEGIN_STMT
_8 = u16Length & 1;
if (_8 != 0)
goto <bb 15>; [INV]
else
goto <bb 16>; [INV]
<bb 15> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
<bb 16> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
if (status != 1)
goto <bb 17>; [INV]
else
goto <bb 42>; [INV]
<bb 17> :
# DEBUG BEGIN_STMT
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_08 ();
# DEBUG BEGIN_STMT
_9 = state->status;
if (_9 == 2)
goto <bb 18>; [INV]
else
goto <bb 19>; [INV]
<bb 18> :
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_08 ();
# DEBUG BEGIN_STMT
status = 1;
goto <bb 42>; [INV]
<bb 19> :
# DEBUG BEGIN_STMT
state->status = 2;
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_08 ();
# DEBUG BEGIN_STMT
base->DER = 0;
# DEBUG BEGIN_STMT
base->IER = 0;
# DEBUG BEGIN_STMT
_10 = pExternalDevice->pDeviceParams;
_11 = _10->u8FrameSize;
state->u8FrameSize = _11;
# DEBUG BEGIN_STMT
_12 = pExternalDevice->pDeviceParams;
_13 = _12->lsb;
state->lsb = _13;
# DEBUG BEGIN_STMT
_14 = pExternalDevice->pDeviceParams;
_15 = _14->u32DefaultData;
state->u32DefaultData = _15;
# DEBUG BEGIN_STMT
state->pExternalDevice = pExternalDevice;
# DEBUG BEGIN_STMT
Lpspi_TransmitTxInit (u8Instance, pu8TxBuffer, u16Length);
# DEBUG BEGIN_STMT
Lpspi_TransmitRxInit (u8Instance, pu8RxBuffer, u16Length);
# DEBUG BEGIN_STMT
_16 = OsIf_GetCounter (0);
CurrentTicks = _16;
# DEBUG BEGIN_STMT
goto <bb 34>; [INV]
<bb 20> :
# DEBUG BEGIN_STMT
_17 = base->FSR;
_18 = _17 >> 16;
_19 = (unsigned char) _18;
numberOfReads = _19 & 7;
# DEBUG BEGIN_STMT
if (numberOfReads > 4)
goto <bb 21>; [INV]
else
goto <bb 22>; [INV]
<bb 21> :
# DEBUG BEGIN_STMT
numberOfReads = 4;
<bb 22> :
# DEBUG BEGIN_STMT
if (numberOfReads != 0)
goto <bb 23>; [INV]
else
goto <bb 28>; [INV]
<bb 23> :
# DEBUG BEGIN_STMT
_20 = (int) numberOfReads;
_21 = state->expectedFifoReads;
_22 = (int) _21;
_23 = state->rxIndex;
_24 = (int) _23;
_25 = _22 - _24;
if (_20 > _25)
goto <bb 24>; [INV]
else
goto <bb 25>; [INV]
<bb 24> :
# DEBUG BEGIN_STMT
_26 = state->expectedFifoReads;
_27 = (unsigned char) _26;
_28 = state->rxIndex;
_29 = (unsigned char) _28;
numberOfReads = _27 - _29;
<bb 25> :
# DEBUG BEGIN_STMT
if (numberOfReads != 0)
goto <bb 26>; [INV]
else
goto <bb 27>; [INV]
<bb 26> :
# DEBUG BEGIN_STMT
ElapsedTicks = 0;
<bb 27> :
# DEBUG BEGIN_STMT
Lpspi_Ip_ReadData (u8Instance, numberOfReads);
<bb 28> :
# DEBUG BEGIN_STMT
DataProcessStatus = Lpspi_Ip_PushDataProcess (u8Instance);
# DEBUG BEGIN_STMT
if (DataProcessStatus == 0)
goto <bb 29>; [INV]
else
goto <bb 30>; [INV]
<bb 29> :
# DEBUG BEGIN_STMT
ElapsedTicks = 0;
<bb 30> :
# DEBUG BEGIN_STMT
_30 = base->SR;
_31 = _30 & 6144;
if (_31 != 0)
goto <bb 31>; [INV]
else
goto <bb 32>; [INV]
<bb 31> :
# DEBUG BEGIN_STMT
_32 = base->SR;
_33 = _32 & 6144;
base->SR = _33;
# DEBUG BEGIN_STMT
status = 2;
<bb 32> :
# DEBUG BEGIN_STMT
D.4684 = OsIf_GetElapsed (&CurrentTicks, 0);
ElapsedTicks = D.4684 + ElapsedTicks;
# DEBUG BEGIN_STMT
if (ElapsedTicks >= TimeoutTicks)
goto <bb 33>; [INV]
else
goto <bb 34>; [INV]
<bb 33> :
# DEBUG BEGIN_STMT
status = 3;
<bb 34> :
# DEBUG BEGIN_STMT
_34 = state->rxIndex;
_35 = state->expectedFifoReads;
if (_34 != _35)
goto <bb 35>; [INV]
else
goto <bb 36>; [INV]
<bb 35> :
if (status == 0)
goto <bb 20>; [INV]
else
goto <bb 36>; [INV]
<bb 36> :
# DEBUG BEGIN_STMT
_36 = state->bKeepCs;
_37 = ~_36;
if (_37 != 0)
goto <bb 38>; [INV]
else
goto <bb 37>; [INV]
<bb 37> :
if (status != 0)
goto <bb 38>; [INV]
else
goto <bb 39>; [INV]
<bb 38> :
# DEBUG BEGIN_STMT
_38 = base->CR;
_39 = _38 & 4294967294;
base->CR = _39;
<bb 39> :
# DEBUG BEGIN_STMT
if (status != 0)
goto <bb 40>; [INV]
else
goto <bb 41>; [INV]
<bb 40> :
# DEBUG BEGIN_STMT
state->status = 3;
goto <bb 42>; [INV]
<bb 41> :
# DEBUG BEGIN_STMT
state->status = 1;
<bb 42> :
# DEBUG BEGIN_STMT
D.4694 = status;
CurrentTicks = {CLOBBER};
return D.4694;
}
Lpspi_Ip_DeInit (uint8 u8Instance)
{
Lpspi_Ip_StatusType status;
const struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
Lpspi_Ip_StatusType D.4643;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
if (u8Instance > 5)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
if (state == 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_3 = state->status;
if (_3 == 2)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
status = 1;
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
_4 = base->CR;
_5 = _4 | 2;
base->CR = _5;
# DEBUG BEGIN_STMT
base->CR = 0;
# DEBUG BEGIN_STMT
_6 = (int) u8Instance;
Lpspi_Ip_StateStructureArray[_6] = 0B;
<bb 9> :
# DEBUG BEGIN_STMT
D.4643 = status;
return D.4643;
}
Lpspi_Ip_Init (const struct Lpspi_Ip_ConfigType * pPhyUnitConfigPtr)
{
uint8 u8Instance;
Lpspi_Ip_StatusType status;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
Lpspi_Ip_StatusType D.4629;
<bb 2> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 0;
# DEBUG BEGIN_STMT
u8Instance = 0;
# DEBUG BEGIN_STMT
if (pPhyUnitConfigPtr == 0B)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 7>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
u8Instance = pPhyUnitConfigPtr->u8Instance;
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
base = Lpspi_Ip_Bases[_2];
# DEBUG BEGIN_STMT
if (state != 0B)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
DevAssert (0);
# DEBUG BEGIN_STMT
status = 1;
goto <bb 7>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_3 = (int) u8Instance;
_4 = pPhyUnitConfigPtr->stateStructure;
Lpspi_Ip_StateStructureArray[_3] = _4;
# DEBUG BEGIN_STMT
_5 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_5];
# DEBUG BEGIN_STMT
_6 = pPhyUnitConfigPtr->cr;
_7 = _6 | 8;
base->CR = _7;
# DEBUG BEGIN_STMT
_8 = pPhyUnitConfigPtr->cfgr1;
base->CFGR1 = _8;
# DEBUG BEGIN_STMT
base->FCR = 2;
# DEBUG BEGIN_STMT
_9 = pPhyUnitConfigPtr->bSlaveMode;
state->bSlaveMode = _9;
# DEBUG BEGIN_STMT
state->bKeepCs = 0;
# DEBUG BEGIN_STMT
state->bFirstCmd = 1;
# DEBUG BEGIN_STMT
state->status = 1;
# DEBUG BEGIN_STMT
_10 = pPhyUnitConfigPtr->transferMode;
Lpspi_Ip_UpdateTransferMode (u8Instance, _10);
<bb 7> :
# DEBUG BEGIN_STMT
D.4629 = status;
return D.4629;
}
Lpspi_Ip_TransferProcess (uint8 u8Instance)
{
boolean bErrorFlag;
uint8 numberOfReads;
uint32 srStatusRegister;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
bErrorFlag = 0;
# DEBUG BEGIN_STMT
_3 = state->status;
if (_3 == 2)
goto <bb 3>; [INV]
else
goto <bb 24>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
srStatusRegister = base->SR;
# DEBUG BEGIN_STMT
_4 = base->SR;
base->SR = _4;
# DEBUG BEGIN_STMT
_5 = srStatusRegister & 6144;
if (_5 != 0)
goto <bb 4>; [INV]
else
goto <bb 5>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
bErrorFlag = 1;
goto <bb 12>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
_6 = base->FSR;
_7 = _6 >> 16;
_8 = (unsigned char) _7;
numberOfReads = _8 & 7;
# DEBUG BEGIN_STMT
if (numberOfReads > 4)
goto <bb 6>; [INV]
else
goto <bb 7>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
numberOfReads = 4;
<bb 7> :
# DEBUG BEGIN_STMT
if (numberOfReads != 0)
goto <bb 8>; [INV]
else
goto <bb 11>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
_9 = (int) numberOfReads;
_10 = state->expectedFifoReads;
_11 = (int) _10;
_12 = state->rxIndex;
_13 = (int) _12;
_14 = _11 - _13;
if (_9 > _14)
goto <bb 9>; [INV]
else
goto <bb 10>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
_15 = state->expectedFifoReads;
_16 = (unsigned char) _15;
_17 = state->rxIndex;
_18 = (unsigned char) _17;
numberOfReads = _16 - _18;
<bb 10> :
# DEBUG BEGIN_STMT
Lpspi_Ip_ReadData (u8Instance, numberOfReads);
<bb 11> :
# DEBUG BEGIN_STMT
Lpspi_Ip_PushDataProcess (u8Instance);
<bb 12> :
# DEBUG BEGIN_STMT
_19 = state->rxIndex;
_20 = state->expectedFifoReads;
if (_19 == _20)
goto <bb 14>; [INV]
else
goto <bb 13>; [INV]
<bb 13> :
if (bErrorFlag != 0)
goto <bb 14>; [INV]
else
goto <bb 24>; [INV]
<bb 14> :
# DEBUG BEGIN_STMT
_21 = state->bKeepCs;
_22 = ~_21;
if (_22 != 0)
goto <bb 16>; [INV]
else
goto <bb 15>; [INV]
<bb 15> :
if (bErrorFlag != 0)
goto <bb 16>; [INV]
else
goto <bb 17>; [INV]
<bb 16> :
# DEBUG BEGIN_STMT
SchM_Enter_Spi_SPI_EXCLUSIVE_AREA_12 ();
# DEBUG BEGIN_STMT
_23 = base->CR;
_24 = _23 & 4294967294;
base->CR = _24;
# DEBUG BEGIN_STMT
SchM_Exit_Spi_SPI_EXCLUSIVE_AREA_12 ();
<bb 17> :
# DEBUG BEGIN_STMT
base->IER = 0;
# DEBUG BEGIN_STMT
if (bErrorFlag != 0)
goto <bb 18>; [INV]
else
goto <bb 19>; [INV]
<bb 18> :
# DEBUG BEGIN_STMT
state->status = 3;
goto <bb 20>; [INV]
<bb 19> :
# DEBUG BEGIN_STMT
state->status = 1;
<bb 20> :
# DEBUG BEGIN_STMT
_25 = state->callback;
if (_25 != 0B)
goto <bb 21>; [INV]
else
goto <bb 24>; [INV]
<bb 21> :
# DEBUG BEGIN_STMT
if (bErrorFlag != 0)
goto <bb 22>; [INV]
else
goto <bb 23>; [INV]
<bb 22> :
# DEBUG BEGIN_STMT
_26 = state->callback;
_26 (u8Instance, 1);
goto <bb 24>; [INV]
<bb 23> :
# DEBUG BEGIN_STMT
_27 = state->callback;
_27 (u8Instance, 0);
<bb 24> :
return;
}
Lpspi_Ip_PushDataProcess (uint8 u8Instance)
{
Lpspi_Ip_StatusType status;
uint8 numberOfReads;
uint8 numberOfWrites;
const struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
Lpspi_Ip_StatusType D.4743;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
status = 1;
# DEBUG BEGIN_STMT
_3 = base->FSR;
_4 = (unsigned char) _3;
numberOfWrites = _4 & 7;
# DEBUG BEGIN_STMT
_5 = base->FSR;
_6 = _5 >> 16;
_7 = (unsigned char) _6;
numberOfReads = _7 & 7;
# DEBUG BEGIN_STMT
_8 = (int) numberOfWrites;
_9 = (int) numberOfReads;
_10 = _8 + _9;
if (_10 <= 3)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
_11 = numberOfWrites + numberOfReads;
numberOfWrites = 3 - _11;
goto <bb 5>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
numberOfWrites = 0;
<bb 5> :
# DEBUG BEGIN_STMT
if (numberOfWrites != 0)
goto <bb 6>; [INV]
else
goto <bb 14>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_12 = (int) numberOfWrites;
_13 = state->expectedFifoWrites;
_14 = (int) _13;
_15 = state->txIndex;
_16 = (int) _15;
_17 = _14 - _16;
if (_12 > _17)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_18 = state->expectedFifoWrites;
_19 = (unsigned char) _18;
_20 = state->txIndex;
_21 = (unsigned char) _20;
numberOfWrites = _19 - _21;
<bb 8> :
# DEBUG BEGIN_STMT
_22 = state->expectedFifoWrites;
_23 = state->txIndex;
if (_22 == _23)
goto <bb 9>; [INV]
else
goto <bb 12>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
_24 = base->IER;
_25 = _24 & 4294967294;
base->IER = _25;
# DEBUG BEGIN_STMT
_26 = state->bKeepCs;
_27 = ~_26;
if (_27 != 0)
goto <bb 10>; [INV]
else
goto <bb 13>; [INV]
<bb 10> :
_28 = base->TCR;
_29 = _28 & 2097152;
if (_29 != 0)
goto <bb 11>; [INV]
else
goto <bb 13>; [INV]
<bb 11> :
# DEBUG BEGIN_STMT
_30 = base->TCR;
_31 = _30 & 4291821567;
base->TCR = _31;
# DEBUG BEGIN_STMT
status = 0;
goto <bb 13>; [INV]
<bb 12> :
# DEBUG BEGIN_STMT
status = 0;
<bb 13> :
# DEBUG BEGIN_STMT
Lpspi_Ip_PushData (u8Instance, numberOfWrites);
<bb 14> :
# DEBUG BEGIN_STMT
D.4743 = status;
return D.4743;
}
Lpspi_Ip_PushData (uint8 u8Instance, uint8 numberOfWrites)
{
uint8 i;
uint32 data;
struct Lpspi_Ip_StateStructureType * state;
struct LPSPI_Type * base;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
i = 0;
goto <bb 11>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
_3 = state->pu8TxBuffer;
if (_3 != 0B)
goto <bb 4>; [INV]
else
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_4 = state->u8FrameSize;
if (_4 <= 8)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
_5 = state->pu8TxBuffer;
_6 = state->txIndex;
_7 = (sizetype) _6;
_8 = _5 + _7;
_9 = *_8;
data = (uint32) _9;
goto <bb 10>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_10 = state->u8FrameSize;
if (_10 <= 16)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_11 = state->pu8TxBuffer;
_12 = state->txIndex;
_13 = (unsigned int) _12;
_14 = _13 * 2;
_15 = _11 + _14;
_16 = *_15;
data = (uint32) _16;
goto <bb 10>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
_17 = state->pu8TxBuffer;
_18 = state->txIndex;
_19 = (unsigned int) _18;
_20 = _19 * 4;
_21 = _17 + _20;
data = *_21;
goto <bb 10>; [INV]
<bb 9> :
# DEBUG BEGIN_STMT
data = state->u32DefaultData;
<bb 10> :
# DEBUG BEGIN_STMT
base->TDR = data;
# DEBUG BEGIN_STMT
_22 = state->txIndex;
_23 = _22;
_24 = _23 + 1;
state->txIndex = _24;
# DEBUG BEGIN_STMT
i.2_25 = i;
i = i.2_25 + 1;
<bb 11> :
# DEBUG BEGIN_STMT
if (i < numberOfWrites)
goto <bb 3>; [INV]
else
goto <bb 12>; [INV]
<bb 12> :
return;
}
Lpspi_Ip_ReadData (uint8 u8Instance, uint8 numberOfReads)
{
uint8 i;
uint32 data;
struct Lpspi_Ip_StateStructureType * state;
const struct LPSPI_Type * base;
<bb 2> :
# DEBUG BEGIN_STMT
_1 = (int) u8Instance;
base = Lpspi_Ip_Bases[_1];
# DEBUG BEGIN_STMT
_2 = (int) u8Instance;
state = Lpspi_Ip_StateStructureArray[_2];
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
i = 0;
goto <bb 10>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
data = base->RDR;
# DEBUG BEGIN_STMT
_3 = state->pu8RxBuffer;
if (_3 != 0B)
goto <bb 4>; [INV]
else
goto <bb 9>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
_4 = state->u8FrameSize;
if (_4 <= 8)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
# DEBUG BEGIN_STMT
_5 = state->pu8RxBuffer;
_6 = state->rxIndex;
_7 = (sizetype) _6;
_8 = _5 + _7;
_9 = (unsigned char) data;
*_8 = _9;
goto <bb 9>; [INV]
<bb 6> :
# DEBUG BEGIN_STMT
_10 = state->u8FrameSize;
if (_10 <= 16)
goto <bb 7>; [INV]
else
goto <bb 8>; [INV]
<bb 7> :
# DEBUG BEGIN_STMT
_11 = state->pu8RxBuffer;
_12 = state->rxIndex;
_13 = (unsigned int) _12;
_14 = _13 * 2;
_15 = _11 + _14;
_16 = (short unsigned int) data;
*_15 = _16;
goto <bb 9>; [INV]
<bb 8> :
# DEBUG BEGIN_STMT
_17 = state->pu8RxBuffer;
_18 = state->rxIndex;
_19 = (unsigned int) _18;
_20 = _19 * 4;
_21 = _17 + _20;
*_21 = data;
<bb 9> :
# DEBUG BEGIN_STMT
_22 = state->rxIndex;
_23 = _22;
_24 = _23 + 1;
state->rxIndex = _24;
# DEBUG BEGIN_STMT
i.1_25 = i;
i = i.1_25 + 1;
<bb 10> :
# DEBUG BEGIN_STMT
if (i < numberOfReads)
goto <bb 3>; [INV]
else
goto <bb 11>; [INV]
<bb 11> :
return;
}
DevAssert (volatile boolean x)
{
<bb 2> :
# DEBUG BEGIN_STMT
x.0_1 = x;
if (x.0_1 != 0)
goto <bb 4>; [INV]
else
goto <bb 3>; [INV]
<bb 3> :
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
goto <bb 3>; [INV]
<bb 4> :
# DEBUG BEGIN_STMT
return;
}