Is there an other way to report bugs in components?
You can read CSR_BUF_SR register to check which RxMailbox had received data.
You can refer to registers TRM. We have created an internal enhancement request, to pass the rxMailbox parameter to Callback function.
To read CSR_BUF_SR might not return the same buffer.
Thank you for creating the enhancement request.
CSR_BUF_SR register could be used to retrieve the RxMailbox number.
You can refer to CAN_Full code example (ISR_CAN) for the usage of CSR_BUF_SR register.
Problems when using the Callback CAN_ReceiveMsg_Callback() and again check for CSR_BUF_SR:
- As you can still receive CAN messages while CAN_MsgRXIsr() is managing the current messages register CSR_BUF_SR can change.
- While CAN_MsgRXIsr() is managing the buffers, it will not clear CSR_BUF_SR. If several buffers are "active" a second search will not necessarily find the same mailbox like the callback would indicate in rxMailbox (worse if combined with 1.).
- It is much easier to add a manual callback in CAN_ReceiveMsg(uint8 rxMailbox)
For sure there is a solution but would like to see it work like it's meant to work.