v08 - add error handling
This commit is contained in:
@ -41,6 +41,8 @@
|
||||
// Drivers
|
||||
#include "DIPO_DigitalPorts.h"
|
||||
|
||||
#include "ERRH_ErrorHandler.h"
|
||||
|
||||
// include STM32 drivers
|
||||
#include "stm32l4xx_hal.h"
|
||||
|
||||
@ -173,14 +175,6 @@ BOOL SPID_boSend( SPID_StHandle* pstHandle )
|
||||
BOOL boOK;
|
||||
U32 u32Flags = 0;
|
||||
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( pstHandle == NULL || pstHandle->enSPI >= SPID_eNumberOfSPIs )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
return( FALSE );
|
||||
}
|
||||
#endif
|
||||
|
||||
osMutexAcquire( m_astSPI[pstHandle->enSPI].pstMutexID, osWaitForever );
|
||||
|
||||
// clear all flags
|
||||
@ -214,14 +208,6 @@ BOOL SPID_boSendReceive( SPID_StHandle* pstHandle )
|
||||
{
|
||||
BOOL boOK;
|
||||
U32 u32Flags = 0;
|
||||
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( pstHandle == NULL || pstHandle->enSPI >= SPID_eNumberOfSPIs )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
return( FALSE );
|
||||
}
|
||||
#endif
|
||||
|
||||
osMutexAcquire( m_astSPI[pstHandle->enSPI].pstMutexID, osWaitForever );
|
||||
|
||||
@ -257,13 +243,6 @@ BOOL SPID_boSendReceive( SPID_StHandle* pstHandle )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID HAL_SPI_TxRxCpltCallback( SPI_HandleTypeDef *hspi )
|
||||
{
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( hspi == NULL )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
SPID_EnSPIs enSPI = enGetSPI( hspi );
|
||||
osEventFlagsSet( m_pstEventID, m_astSPI[enSPI].u32SPICompleteFlag );
|
||||
@ -277,13 +256,6 @@ VOID HAL_SPI_TxRxCpltCallback( SPI_HandleTypeDef *hspi )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID HAL_SPI_TxCpltCallback( SPI_HandleTypeDef *hspi )
|
||||
{
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( hspi == NULL )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
SPID_EnSPIs enSPI = enGetSPI( hspi );
|
||||
osEventFlagsSet( m_pstEventID, m_astSPI[enSPI].u32SPICompleteFlag );
|
||||
@ -297,13 +269,6 @@ VOID HAL_SPI_TxCpltCallback( SPI_HandleTypeDef *hspi )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID HAL_SPI_RxCpltCallback( SPI_HandleTypeDef *hspi )
|
||||
{
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( hspi == NULL )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
SPID_EnSPIs enSPI = enGetSPI( hspi );
|
||||
osEventFlagsSet( m_pstEventID, m_astSPI[enSPI].u32SPICompleteFlag );
|
||||
@ -317,31 +282,7 @@ VOID HAL_SPI_RxCpltCallback( SPI_HandleTypeDef *hspi )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID HAL_SPI_ErrorCallback( SPI_HandleTypeDef *hspi )
|
||||
{
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( hspi == NULL )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// check rx overrun error
|
||||
if( hspi->ErrorCode & HAL_SPI_ERROR_OVR )
|
||||
{
|
||||
//ELOG_ADD_LOG( ELOG_eSPIOverrunError );
|
||||
}
|
||||
|
||||
// check rx dma transfer error
|
||||
if( hspi->hdmarx->ErrorCode & HAL_DMA_ERROR_TE )
|
||||
{
|
||||
//ELOG_ADD_LOG( ELOG_eDMAHTransferError );
|
||||
}
|
||||
|
||||
// check tx dma transfer error
|
||||
if( hspi->hdmatx->ErrorCode & HAL_DMA_ERROR_TE )
|
||||
{
|
||||
//ELOG_ADD_LOG( ELOG_eDMAHTransferError );
|
||||
}
|
||||
ERRH_vSetError(SPI_ERROR_MASK | hspi->ErrorCode);
|
||||
|
||||
SPID_EnSPIs enSPI = enGetSPI( hspi );
|
||||
osEventFlagsSet( m_pstEventID, m_astSPI[enSPI].u32SPIErrorFlag );
|
||||
@ -355,13 +296,6 @@ VOID HAL_SPI_ErrorCallback( SPI_HandleTypeDef *hspi )
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PRIVATE SPID_EnSPIs enGetSPI( SPI_HandleTypeDef* pstSPI )
|
||||
{
|
||||
#if defined(PDEF_FUNCTION_PARAMETER_CHECK_ENABLED) && PDEF_FUNCTION_PARAMETER_CHECK_ENABLED == TRUE
|
||||
if( pstSPI == NULL )
|
||||
{
|
||||
ELOG_ADD_LOG( ELOG_eInvalidFunctionParameter );
|
||||
ASRT_ASSERT( FALSE );
|
||||
}
|
||||
#endif
|
||||
|
||||
for( U8 u8Cnt = 0; u8Cnt < SPID_eNumberOfSPIs; u8Cnt++ )
|
||||
{
|
||||
|
Reference in New Issue
Block a user