mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 09:53:59 +09:00
2326 lines
49 KiB
Plaintext
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) @05dd6a80
|
|
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) @05dd69a0
|
|
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) @05dd6460
|
|
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) @05dd6380
|
|
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) @05dd6000
|
|
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) @05ef41c0
|
|
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) @05ef49a0
|
|
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) @05ef48c0
|
|
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) @05ef4700
|
|
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) @05ef4620
|
|
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) @05ef4540
|
|
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) @05ef4460
|
|
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) @05ef4380
|
|
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) @05ee60e0
|
|
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) @05ee6d20
|
|
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) @05ee6a80
|
|
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) @05ee67e0
|
|
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) @05ee6540
|
|
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) @05ee62a0
|
|
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) @05ee6000
|
|
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) @05ed09a0
|
|
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) @05ed0380
|
|
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) @05ed0ee0
|
|
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) @05ed0c40
|
|
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) @05ed08c0
|
|
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) @05ed0620
|
|
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) @05ed02a0
|
|
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) @05ed0000
|
|
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) @05d21c40
|
|
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) @05d21e00
|
|
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) @05d21b60
|
|
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) @05d200d8
|
|
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) @05d20000
|
|
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) @05d19ee8
|
|
Type: variable definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Varpool flags:
|
|
DevAssert/0 (DevAssert) @05d1d8c0
|
|
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;
|
|
|
|
}
|
|
|
|
|