Maybe a Big Bug in S32SDK_S32K14x_EAR_0.8.[4，5，6] file flexcan_hw_access.c:
THIS LINE for ext message:
/* Clear SRR bit */
flexcan_mb_config &= ~CAN_CS_SRR_MASK;
/* Set SRR bit */
flexcan_mb_config |= CAN_CS_SRR_MASK;
two Days Debug!!! No sleep.
The usage of this bit as set determines the behave of the driver to trigger unwanted arbitration loss in case of miss use.
According to RM.
SRR - Substitute Remote Request
Fixed recessive bit, used only in extended format. It must be set to one by the user for
transmission (Tx Buffers) and will be stored with the value received on the CAN bus for
Rx receiving buffers. It can be received as either recessive or dominant. If FlexCAN
receives this bit as dominant, then it is interpreted as an arbitration loss.
1 = Recessive value is compulsory for transmission in extended format frames
0 = Dominant is not a valid value for transmission in extended format frames