Обновление
This commit is contained in:
parent
95149b8998
commit
c1429a5ad3
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
|
|
||||||
#ifndef NULL
|
#ifndef NULL
|
||||||
#define NULL ((void *)0)
|
#define NULL ((void *)0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FLEXCAN_FD_INSTANCE_COUNT FLEXCAN_INSTANCE_COUNT /** all support can fd */
|
#define FLEXCAN_FD_INSTANCE_COUNT FLEXCAN_INSTANCE_COUNT /** all support can fd */
|
||||||
|
|
@ -277,16 +277,16 @@ typedef struct
|
||||||
|
|
||||||
/* CAN Instance */
|
/* CAN Instance */
|
||||||
static FLEXCAN_Type *const s_aFlexCan_InstanceTable[FLEXCAN_INSTANCE_COUNT] =
|
static FLEXCAN_Type *const s_aFlexCan_InstanceTable[FLEXCAN_INSTANCE_COUNT] =
|
||||||
{
|
{
|
||||||
FLEXCAN0,
|
FLEXCAN0,
|
||||||
FLEXCAN1,
|
FLEXCAN1,
|
||||||
FLEXCAN2,
|
FLEXCAN2,
|
||||||
FLEXCAN3
|
FLEXCAN3
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Normal bit table */
|
/* Normal bit table */
|
||||||
static const FLEXCAN_BaudRegType s_aFlexCan_NormalBaudDividerTable[] =
|
static const FLEXCAN_BaudRegType s_aFlexCan_NormalBaudDividerTable[] =
|
||||||
{
|
{
|
||||||
/* clock source hz baudrate presdiv propseg pseg1 pseg2 rjw */
|
/* clock source hz baudrate presdiv propseg pseg1 pseg2 rjw */
|
||||||
{ FLEXCAN_BAUDCLK_HZ_16M, FLEXCAN_BAUD_500K, 2, 8, 4, 3, 2 },
|
{ FLEXCAN_BAUDCLK_HZ_16M, FLEXCAN_BAUD_500K, 2, 8, 4, 3, 2 },
|
||||||
{ FLEXCAN_BAUDCLK_HZ_24M, FLEXCAN_BAUD_100K, 12, 7, 6, 6, 1 },
|
{ FLEXCAN_BAUDCLK_HZ_24M, FLEXCAN_BAUD_100K, 12, 7, 6, 6, 1 },
|
||||||
|
|
@ -314,11 +314,11 @@ static const FLEXCAN_BaudRegType s_aFlexCan_NormalBaudDividerTable[] =
|
||||||
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_1M, 10, 8, 3, 3, 1 },
|
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_1M, 10, 8, 3, 3, 1 },
|
||||||
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_2M, 5, 8, 3, 3, 1 },
|
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_2M, 5, 8, 3, 3, 1 },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Data bit table */
|
/* Data bit table */
|
||||||
static const FLEXCAN_BaudRegType s_aFlexCan_DataBaudDividerTable[] =
|
static const FLEXCAN_BaudRegType s_aFlexCan_DataBaudDividerTable[] =
|
||||||
{
|
{
|
||||||
/* clock source hz baudrate presdiv propseg pseg1 pseg2 rjw */
|
/* clock source hz baudrate presdiv propseg pseg1 pseg2 rjw */
|
||||||
{ FLEXCAN_BAUDCLK_HZ_16M, FLEXCAN_BAUD_2M, 1, 3, 2, 2, 1 },
|
{ FLEXCAN_BAUDCLK_HZ_16M, FLEXCAN_BAUD_2M, 1, 3, 2, 2, 1 },
|
||||||
{ FLEXCAN_BAUDCLK_HZ_24M, FLEXCAN_BAUD_1M, 2, 5, 3, 3, 1 },
|
{ FLEXCAN_BAUDCLK_HZ_24M, FLEXCAN_BAUD_1M, 2, 5, 3, 3, 1 },
|
||||||
|
|
@ -341,7 +341,7 @@ static const FLEXCAN_BaudRegType s_aFlexCan_DataBaudDividerTable[] =
|
||||||
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_3M, 5, 5, 2, 2, 1 },
|
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_3M, 5, 5, 2, 2, 1 },
|
||||||
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_5M, 2, 8, 3, 3, 1 }
|
{ FLEXCAN_BAUDCLK_HZ_150M, FLEXCAN_BAUD_5M, 2, 8, 3, 3, 1 }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* ################################################################################## */
|
/* ################################################################################## */
|
||||||
|
|
@ -668,10 +668,10 @@ static uint8_t FLEXCAN_LL_ReceiveEnhanceFifo(uint8_t u8CanIndex, FLEXCAN_RxMsgTy
|
||||||
|
|
||||||
pRxMsg->u32DataLen = 0U;
|
pRxMsg->u32DataLen = 0U;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
if (FLEXCAN_LL_CheckFdInstance(u8CanIndex) == FLEXCAN_ERROR_OK)
|
if (FLEXCAN_LL_CheckFdInstance(u8CanIndex) == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
/* The enhanced Rx FIFO has a watermark that is configured by setting EFRCR[ERFWM].
|
/* The enhanced Rx FIFO has a watermark that is configured by setting EFRCR[ERFWM].
|
||||||
|
|
@ -727,9 +727,9 @@ static uint8_t FLEXCAN_LL_ReceiveEnhanceFifo(uint8_t u8CanIndex, FLEXCAN_RxMsgTy
|
||||||
u32Status = FLEXCAN_HWA_ERFSRGetEnhancedFifoFlag(pCan, FLEXCAN_ERFSR_ERFDA_SHIFT, FLEXCAN_ERFSR_ERFDA_MASK);
|
u32Status = FLEXCAN_HWA_ERFSRGetEnhancedFifoFlag(pCan, FLEXCAN_ERFSR_ERFDA_SHIFT, FLEXCAN_ERFSR_ERFDA_MASK);
|
||||||
|
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return pRxMsg->u32DataLen > 0U;
|
return pRxMsg->u32DataLen > 0U;
|
||||||
}
|
}
|
||||||
|
|
@ -1002,6 +1002,9 @@ static uint8_t FLEXCAN_LL_ProcessBaud(FLEXCAN_BaudCfgType *pBaudCfg)
|
||||||
* @param u32RxFilterCnt Filter id list length
|
* @param u32RxFilterCnt Filter id list length
|
||||||
* @return FLEXCAN_ERROR_OK is ok
|
* @return FLEXCAN_ERROR_OK is ok
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static FLEXCAN_ErrorType FLEXCAN_LL_SetLegacyFifo(uint8_t u8CanIndex, FLEXCAN_RxMbFilterType *pRxFilterList, uint32_t u32RxFilterCnt)
|
static FLEXCAN_ErrorType FLEXCAN_LL_SetLegacyFifo(uint8_t u8CanIndex, FLEXCAN_RxMbFilterType *pRxFilterList, uint32_t u32RxFilterCnt)
|
||||||
{
|
{
|
||||||
FLEXCAN_ErrorType tRetVal;
|
FLEXCAN_ErrorType tRetVal;
|
||||||
|
|
@ -1011,14 +1014,14 @@ static FLEXCAN_ErrorType FLEXCAN_LL_SetLegacyFifo(uint8_t u8CanIndex, FLEXCAN_Rx
|
||||||
|
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
tRetVal = FLEXCAN_LL_CheckFdInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckFdInstance(u8CanIndex);
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
/* set legacy fifo */
|
/* set legacy fifo */
|
||||||
|
|
@ -1076,9 +1079,9 @@ static FLEXCAN_ErrorType FLEXCAN_LL_SetLegacyFifo(uint8_t u8CanIndex, FLEXCAN_Rx
|
||||||
/* left for tx = MaxMb-6 - (RFFN+1)*2 */
|
/* left for tx = MaxMb-6 - (RFFN+1)*2 */
|
||||||
u32FilterNum = u32FilterNum / 8U + (u32FilterNum % 8U > 0U ? 1U : 0U);
|
u32FilterNum = u32FilterNum / 8U + (u32FilterNum % 8U > 0U ? 1U : 0U);
|
||||||
FLEXCAN_HWA_SetLegacyFifoFilterNum(pCan, u32FilterNum);
|
FLEXCAN_HWA_SetLegacyFifoFilterNum(pCan, u32FilterNum);
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -1099,14 +1102,14 @@ static FLEXCAN_ErrorType FLEXCAN_LL_SetEnhancedFifo(uint8_t u8CanIndex, FLEXCAN_
|
||||||
uint32_t u32Index;
|
uint32_t u32Index;
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
tRetVal = FLEXCAN_LL_CheckFdInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckFdInstance(u8CanIndex);
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint32_t u32ExtIDFilterNum;
|
uint32_t u32ExtIDFilterNum;
|
||||||
uint32_t u32StdIDFilterNum;
|
uint32_t u32StdIDFilterNum;
|
||||||
|
|
@ -1201,9 +1204,9 @@ static FLEXCAN_ErrorType FLEXCAN_LL_SetEnhancedFifo(uint8_t u8CanIndex, FLEXCAN_
|
||||||
/* If DMA will be used, set MCR[DMA] to enable DMA operation and write ERFCR[DMALW] to configure the number of words to transfer for each Enhanced Rx FIFO data element */
|
/* If DMA will be used, set MCR[DMA] to enable DMA operation and write ERFCR[DMALW] to configure the number of words to transfer for each Enhanced Rx FIFO data element */
|
||||||
|
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
|
|
||||||
|
|
@ -1268,13 +1271,13 @@ static uint8_t FLEXCAN_LL_ProcessTx(uint8_t u8CanIndex, uint8_t u8Handler)
|
||||||
void FLEXCAN_InitMemory(uint8_t u8CanIndex)
|
void FLEXCAN_InitMemory(uint8_t u8CanIndex)
|
||||||
{
|
{
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
FLEXCAN_ErrorType tRetVal;
|
FLEXCAN_ErrorType tRetVal;
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
s_aFlexCan_Setting_Table[u8CanIndex].bEnableFd = 0U;
|
s_aFlexCan_Setting_Table[u8CanIndex].bEnableFd = 0U;
|
||||||
s_aFlexCan_Setting_Table[u8CanIndex].bEnableFifo = 0U;
|
s_aFlexCan_Setting_Table[u8CanIndex].bEnableFifo = 0U;
|
||||||
|
|
@ -1295,9 +1298,9 @@ void FLEXCAN_InitMemory(uint8_t u8CanIndex)
|
||||||
|
|
||||||
/* set first state */
|
/* set first state */
|
||||||
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_DEINIT;
|
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_DEINIT;
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1318,7 +1321,7 @@ FLEXCAN_ErrorType FLEXCAN_Init(uint8_t u8CanIndex, const FLEXCAN_InitType *const
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
FLEXCAN_BaudCfgType tBaudCfg;
|
FLEXCAN_BaudCfgType tBaudCfg;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -1360,7 +1363,7 @@ FLEXCAN_ErrorType FLEXCAN_Init(uint8_t u8CanIndex, const FLEXCAN_InitType *const
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
/* set not start state */
|
/* set not start state */
|
||||||
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_NOTSTART;
|
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_NOTSTART;
|
||||||
|
|
||||||
|
|
@ -1465,9 +1468,9 @@ FLEXCAN_ErrorType FLEXCAN_Init(uint8_t u8CanIndex, const FLEXCAN_InitType *const
|
||||||
s_aFlexCan_Setting_Table[u8CanIndex].u8EnhancedFifoDmaWM = pInitCfg->u8EnhancedFifoDmaWM;
|
s_aFlexCan_Setting_Table[u8CanIndex].u8EnhancedFifoDmaWM = pInitCfg->u8EnhancedFifoDmaWM;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
|
|
||||||
|
|
@ -1486,7 +1489,7 @@ FLEXCAN_ErrorType FLEXCAN_DeInit(uint8_t u8CanIndex)
|
||||||
uint32_t u32TempMcr;
|
uint32_t u32TempMcr;
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -1501,9 +1504,9 @@ FLEXCAN_ErrorType FLEXCAN_DeInit(uint8_t u8CanIndex)
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
FLEXCAN_HWA_SetHaltFreeze(pCan);
|
FLEXCAN_HWA_SetHaltFreeze(pCan);
|
||||||
|
|
||||||
|
|
@ -1547,9 +1550,9 @@ FLEXCAN_ErrorType FLEXCAN_DeInit(uint8_t u8CanIndex)
|
||||||
FLEXCAN_InitMemory(u8CanIndex);
|
FLEXCAN_InitMemory(u8CanIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -1573,7 +1576,7 @@ FLEXCAN_ErrorType FLEXCAN_RxFilterConfig(uint8_t u8CanIndex, const FLEXCAN_MBCon
|
||||||
uint8_t bIndividualMask;
|
uint8_t bIndividualMask;
|
||||||
uint32_t u32TempAddr;
|
uint32_t u32TempAddr;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -1601,9 +1604,9 @@ FLEXCAN_ErrorType FLEXCAN_RxFilterConfig(uint8_t u8CanIndex, const FLEXCAN_MBCon
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
bIndividualMask = 1U;
|
bIndividualMask = 1U;
|
||||||
|
|
||||||
/* current pCan instance */
|
/* current pCan instance */
|
||||||
|
|
@ -1746,9 +1749,9 @@ FLEXCAN_ErrorType FLEXCAN_RxFilterConfig(uint8_t u8CanIndex, const FLEXCAN_MBCon
|
||||||
FLEXCAN_HWA_AttachMCR(pCan, FLEXCAN_MCR_MAXMB(u8Index) /* Maximum pMb index */
|
FLEXCAN_HWA_AttachMCR(pCan, FLEXCAN_MCR_MAXMB(u8Index) /* Maximum pMb index */
|
||||||
| FLEXCAN_MCR_IRMQ(bIndividualMask)); /* individual Rx masking */
|
| FLEXCAN_MCR_IRMQ(bIndividualMask)); /* individual Rx masking */
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -1769,7 +1772,7 @@ FLEXCAN_ErrorType FLEXCAN_SetInterrupt(uint8_t u8CanIndex, const FLEXCAN_Interru
|
||||||
uint8_t u8Index;
|
uint8_t u8Index;
|
||||||
FLEXCAN_SettingType *pCurSetting;
|
FLEXCAN_SettingType *pCurSetting;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -1799,9 +1802,9 @@ FLEXCAN_ErrorType FLEXCAN_SetInterrupt(uint8_t u8CanIndex, const FLEXCAN_Interru
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
pCurSetting = &s_aFlexCan_Setting_Table[u8CanIndex];
|
pCurSetting = &s_aFlexCan_Setting_Table[u8CanIndex];
|
||||||
|
|
@ -1874,9 +1877,9 @@ FLEXCAN_ErrorType FLEXCAN_SetInterrupt(uint8_t u8CanIndex, const FLEXCAN_Interru
|
||||||
s_aFlexCan_Setting_Table[u8CanIndex].bEnableTxMBInt = pIntCfg->bEnTxMBInterrupt;
|
s_aFlexCan_Setting_Table[u8CanIndex].bEnableTxMBInt = pIntCfg->bEnTxMBInterrupt;
|
||||||
s_aFlexCan_Setting_Table[u8CanIndex].bEnableRxMBInt = pIntCfg->bEnRxMBInterrupt;
|
s_aFlexCan_Setting_Table[u8CanIndex].bEnableRxMBInt = pIntCfg->bEnRxMBInterrupt;
|
||||||
s_aFlexCan_Setting_Table[u8CanIndex].bEnableErrInt = pIntCfg->bEnRxMBInterrupt;
|
s_aFlexCan_Setting_Table[u8CanIndex].bEnableErrInt = pIntCfg->bEnRxMBInterrupt;
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -1894,7 +1897,7 @@ FLEXCAN_ErrorType FLEXCAN_Start(uint8_t u8CanIndex)
|
||||||
uint32_t u32TempMcr;
|
uint32_t u32TempMcr;
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -1910,9 +1913,9 @@ FLEXCAN_ErrorType FLEXCAN_Start(uint8_t u8CanIndex)
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
/* set started state */
|
/* set started state */
|
||||||
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_STARTED;
|
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_STARTED;
|
||||||
|
|
||||||
|
|
@ -1944,9 +1947,9 @@ FLEXCAN_ErrorType FLEXCAN_Start(uint8_t u8CanIndex)
|
||||||
s_aFlexCan_CanUsed[u8CanIndex] = 1U;
|
s_aFlexCan_CanUsed[u8CanIndex] = 1U;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -1963,7 +1966,7 @@ FLEXCAN_ErrorType FLEXCAN_Stop(uint8_t u8CanIndex)
|
||||||
uint32_t u32TempMcr;
|
uint32_t u32TempMcr;
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -1979,9 +1982,9 @@ FLEXCAN_ErrorType FLEXCAN_Stop(uint8_t u8CanIndex)
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
/* set started state */
|
/* set started state */
|
||||||
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_NOTSTART;
|
s_aCurrentSequence[u8CanIndex] = FLEXCAN_SEQUENCE_NOTSTART;
|
||||||
|
|
||||||
|
|
@ -2014,10 +2017,10 @@ FLEXCAN_ErrorType FLEXCAN_Stop(uint8_t u8CanIndex)
|
||||||
s_aFlexCan_CanUsed[u8CanIndex] = 0U;
|
s_aFlexCan_CanUsed[u8CanIndex] = 0U;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -2043,7 +2046,7 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy
|
||||||
uint32_t u32TempAddr;
|
uint32_t u32TempAddr;
|
||||||
uint32_t u32Code;
|
uint32_t u32Code;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -2084,7 +2087,7 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
|
|
@ -2188,9 +2191,9 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -2205,21 +2208,21 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy
|
||||||
*/
|
*/
|
||||||
uint8_t FLEXCAN_TransmitProcess(uint8_t u8CanIndex, uint8_t u8TxHandler)
|
uint8_t FLEXCAN_TransmitProcess(uint8_t u8CanIndex, uint8_t u8TxHandler)
|
||||||
{
|
{
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
FLEXCAN_ErrorType tRetVal;
|
FLEXCAN_ErrorType tRetVal;
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
return FLEXCAN_LL_ProcessTx(u8CanIndex, u8TxHandler);
|
return FLEXCAN_LL_ProcessTx(u8CanIndex, u8TxHandler);
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 0U;
|
return 0U;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2238,7 +2241,7 @@ FLEXCAN_ErrorType FLEXCAN_TransmitAbort(uint8_t u8CanIndex, uint8_t u8TxHandler)
|
||||||
uint8_t u8TxRealMbIndex;
|
uint8_t u8TxRealMbIndex;
|
||||||
uint32_t u32TempAddr;
|
uint32_t u32TempAddr;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -2255,7 +2258,7 @@ FLEXCAN_ErrorType FLEXCAN_TransmitAbort(uint8_t u8CanIndex, uint8_t u8TxHandler)
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
|
|
@ -2275,9 +2278,9 @@ FLEXCAN_ErrorType FLEXCAN_TransmitAbort(uint8_t u8CanIndex, uint8_t u8TxHandler)
|
||||||
/* CODE set 0x09 to aborting transmit */
|
/* CODE set 0x09 to aborting transmit */
|
||||||
FLEXCAN_MB_CODE_SET(u32TempAddr, 0x09U);
|
FLEXCAN_MB_CODE_SET(u32TempAddr, 0x09U);
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -2295,7 +2298,7 @@ FLEXCAN_ErrorType FLEXCAN_Receive_Polling(uint8_t u8CanIndex, FLEXCAN_RxMsgListT
|
||||||
FLEXCAN_ErrorType tRetVal;
|
FLEXCAN_ErrorType tRetVal;
|
||||||
uint8_t u8RetVal;
|
uint8_t u8RetVal;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -2317,9 +2320,9 @@ FLEXCAN_ErrorType FLEXCAN_Receive_Polling(uint8_t u8CanIndex, FLEXCAN_RxMsgListT
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
|
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
u8RetVal = 0U;
|
u8RetVal = 0U;
|
||||||
|
|
||||||
pRxBufList->u8RxMsgCnt = 0U;
|
pRxBufList->u8RxMsgCnt = 0U;
|
||||||
|
|
@ -2339,9 +2342,9 @@ FLEXCAN_ErrorType FLEXCAN_Receive_Polling(uint8_t u8CanIndex, FLEXCAN_RxMsgListT
|
||||||
}
|
}
|
||||||
pRxBufList->u8RxMsgCnt = u8RetVal;
|
pRxBufList->u8RxMsgCnt = u8RetVal;
|
||||||
}
|
}
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -2361,7 +2364,7 @@ FLEXCAN_ErrorType FLEXCAN_GetErrorInfo(uint8_t u8CanIndex, FLEXCAN_ErrorInfoType
|
||||||
uint32_t u32ESR1Status, u32ECRStatus;
|
uint32_t u32ESR1Status, u32ECRStatus;
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -2378,9 +2381,9 @@ FLEXCAN_ErrorType FLEXCAN_GetErrorInfo(uint8_t u8CanIndex, FLEXCAN_ErrorInfoType
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
|
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
u32ESR1Status = FLEXCAN_HWA_GetErrorInfo(pCan);
|
u32ESR1Status = FLEXCAN_HWA_GetErrorInfo(pCan);
|
||||||
|
|
@ -2503,14 +2506,14 @@ FLEXCAN_ErrorType FLEXCAN_GetErrorInfo(uint8_t u8CanIndex, FLEXCAN_ErrorInfoType
|
||||||
pErrorInfo->u32TxErrCnt = (u32ECRStatus & FLEXCAN_ECR_TXERRCNT_MASK) >> FLEXCAN_ECR_TXERRCNT_SHIFT;
|
pErrorInfo->u32TxErrCnt = (u32ECRStatus & FLEXCAN_ECR_TXERRCNT_MASK) >> FLEXCAN_ECR_TXERRCNT_SHIFT;
|
||||||
pErrorInfo->u32TxErrCnt_Fast = (u32ECRStatus & FLEXCAN_ECR_TXERRCNT_FAST_MASK) >> FLEXCAN_ECR_TXERRCNT_FAST_SHIFT;
|
pErrorInfo->u32TxErrCnt_Fast = (u32ECRStatus & FLEXCAN_ECR_TXERRCNT_FAST_MASK) >> FLEXCAN_ECR_TXERRCNT_FAST_SHIFT;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PROCESS_UNUSED_VAR(u32ESR1Status);
|
PROCESS_UNUSED_VAR(u32ESR1Status);
|
||||||
PROCESS_UNUSED_VAR(u32ECRStatus);
|
PROCESS_UNUSED_VAR(u32ECRStatus);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -2527,7 +2530,7 @@ FLEXCAN_ErrorType FLEXCAN_ClrErrorInfo(uint8_t u8CanIndex, const FLEXCAN_ErrorIn
|
||||||
FLEXCAN_ErrorType tRetVal;
|
FLEXCAN_ErrorType tRetVal;
|
||||||
FLEXCAN_Type *pCan;
|
FLEXCAN_Type *pCan;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
|
|
||||||
|
|
@ -2543,15 +2546,15 @@ FLEXCAN_ErrorType FLEXCAN_ClrErrorInfo(uint8_t u8CanIndex, const FLEXCAN_ErrorIn
|
||||||
|
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
tRetVal = FLEXCAN_ERROR_OK;
|
tRetVal = FLEXCAN_ERROR_OK;
|
||||||
#endif
|
#endif
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
FLEXCAN_HWA_ClrErrorInfo(pCan, pErrorInfo->u32ErrorValue);
|
FLEXCAN_HWA_ClrErrorInfo(pCan, pErrorInfo->u32ErrorValue);
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return tRetVal;
|
return tRetVal;
|
||||||
}
|
}
|
||||||
|
|
@ -2720,12 +2723,12 @@ void FLEXCAN_IRQHandler(uint8_t u8CanIndex)
|
||||||
|
|
||||||
FLEXCAN_ErrorInfoType pErrorInfo;
|
FLEXCAN_ErrorInfoType pErrorInfo;
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
/* check parameter */
|
/* check parameter */
|
||||||
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
tRetVal = FLEXCAN_LL_CheckInstance(u8CanIndex);
|
||||||
if (tRetVal == FLEXCAN_ERROR_OK)
|
if (tRetVal == FLEXCAN_ERROR_OK)
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
pCan = (FLEXCAN_Type *)s_aFlexCan_InstanceTable[u8CanIndex];
|
||||||
|
|
||||||
|
|
@ -2803,8 +2806,8 @@ void FLEXCAN_IRQHandler(uint8_t u8CanIndex)
|
||||||
|
|
||||||
PROCESS_UNUSED_VAR(pCan);
|
PROCESS_UNUSED_VAR(pCan);
|
||||||
|
|
||||||
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
#if FLEXCAN_CHECK_PARAMETERS == STD_ON
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue