I solve this question after see https://community.nxp.com/message/592277
The MPC5746R FlexCAN also supports detection and correction of errors in memory read accesses.
The ECC error may have occurred due to module not being initialized properly.
This feature that is enabled by default.
Add codes belows, or set bit ECCDIS in CAN_MECR can solve this question.
void vfnCanUnrestrictedWrite(volatile struct CAN_tag *pcan)
{
#define CAN_BASE_ADDR ((uint32_t)(pcan))
uint32_t i = 0;
pcan->CTRL2.B.WRMFRZ = 1; // Enable Unrestricted Write Access to FlexCAN Memory
(*(volatile long long int *) (CAN_BASE_ADDR + 0xAB0))=0x0000000000000000; //TX_SMB
(*(volatile long long int *) (CAN_BASE_ADDR + 0xAB8))=0x0000000000000000; //TX_SMB
(*(volatile long long int *) (CAN_BASE_ADDR + 0xAC0))=0x0000000000000000; //RX_SMB0
(*(volatile long long int *) (CAN_BASE_ADDR + 0xAC8))=0x0000000000000000; //RX_SMB0
(*(volatile long long int *) (CAN_BASE_ADDR + 0xAD0))=0x0000000000000000; //RX_SMB1
(*(volatile long long int *) (CAN_BASE_ADDR + 0xAD8))=0x0000000000000000; //RX_SMB1
(*(volatile long int *) (CAN_BASE_ADDR + 0xA80))=0x00000000; //RX_FIR0
(*(volatile long int *) (CAN_BASE_ADDR + 0xA84))=0x00000000; //RX_FIR1
(*(volatile long int *) (CAN_BASE_ADDR + 0xA88))=0x00000000; //RX_FIR2
(*(volatile long int *) (CAN_BASE_ADDR + 0xA8C))=0x00000000; //RX_FIR3
(*(volatile long int *) (CAN_BASE_ADDR + 0xA90))=0x00000000; //RX_FIR4
(*(volatile long int *) (CAN_BASE_ADDR + 0xA94))=0x00000000; //RX_FIR5
(*(volatile long int *) (CAN_BASE_ADDR + 0xA98))=0x00000000; //Reserved Location 0xA98 to 0xA9B
(*(volatile long int *) (CAN_BASE_ADDR + 0xA9C))=0x00000000; //Reserved Location 0xA9C to 0xA9F
for(i=0;i<128;i++)
(*(volatile long long int *) (CAN_BASE_ADDR + 0x480 + (i*8))) = 0x0000000000000000; //Reserved Location from 0x480 to 0x87F
for(i=0;i<32;i++)
(*(volatile long long int *) (CAN_BASE_ADDR + 0x980 + (i*8))) = 0x0000000000000000; //Reserved Location from 0x980 to 0xA7F
pcan->CTRL2.B.WRMFRZ = 0; // Disable Unrestricted Write Access to FlexCAN Memory
#undef CAN_BASE_ADDR
}