AnsweredAssumed Answered

What is the difference between RX FIFO and message box

Question asked by Christian Mächler on Mar 22, 2018
Latest reply on Apr 2, 2018 by Alexandru Nan

Hello,

 

if you want to receive more than 32 messages via CAN and use the FlexCAN driver you can either do this by using a message box and setting an appropriate mask in order to receive more than one message ID with that message box. Or you can use the RX FIFO and set an appropriate ID table.

However, it seems like as soon as a message is received, the interrupt handler of the FlexCAN driver is called and the data from the message box or RX FIFO gets copied to the given buffer variable.

After this, the FlexCAN driver is not able to receive another message, unless the 

FLEXCAN_DRV_RxFifo

or the

FLEXCAN_DRV_Receive

function is called again, which if you want to receive adjacent messages has to be done by the callback function of said interrupt handler.

 

In this case, what is the difference between the message box and the RX FIFO if the FIFO is not able to receive another message before calling the receive function again?

 

Outcomes