Hi,
FLEXCAN_MSG_ID_STD and FLEXCAN_MSG_ID_EXT distinguish how mask will be written in the given mask acceptance register. STD mask is left shifted by 18 bits similarly as the ID set in the regular MB.
By default the IDE bit of incoming frame is checked against the bit programmed in the MB, unless CTRL2[EACEN] is set, so IDE bit can be masked too.
To receive mentioned IDs into two MBs you can use following code:
/* Set information about the data to be received */
flexcan_data_info_t dataInfo =
{
.data_length = 1U,
.msg_id_type = FLEXCAN_MSG_ID_STD,
.enable_brs = false,
.fd_enable = false,
.fd_padding = 0U
};
/* Configure RX message buffer with STD ID 0x08 */
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX_1, &dataInfo, 0x08);
dataInfo.msg_id_type = FLEXCAN_MSG_ID_EXT;
/* Configure RX message buffer with EXT ID 0x4bc0001 */
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX_2, &dataInfo, 0x4bc0001);
/* set individual masking type */
FLEXCAN_DRV_SetRxMaskType(INST_CANCOM1, FLEXCAN_RX_MASK_INDIVIDUAL);
/* set mask affecting RX_MAILBOX_1 */
FLEXCAN_DRV_SetRxIndividualMask(INST_CANCOM1, FLEXCAN_MSG_ID_STD, RX_MAILBOX_1, 0x7FF);
/* set mask affecting RX_MAILBOX_2 */
FLEXCAN_DRV_SetRxIndividualMask(INST_CANCOM1, FLEXCAN_MSG_ID_EXT, RX_MAILBOX_2, 0x1FFFFFFF);
/* Start receiving data in RX_MAILBOX_1. */
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX_1, &recvBuff1);
/* Start receiving data in RX_MAILBOX_2 */
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX_2, &recvBuff2);
If you want to use RXFIFO filter table must be defined too. You can refer to below example
https://community.nxp.com/docs/DOC-343091
BR, Petr