Hello Lundin,
I would like to understand what you mean by design flaw. The msCAN module is certified being conform to the CAN specification by a specialized third party (http:
www.cs-group.de), therefore the design and priorities do respect all the protocol rules. Any exception would be or is (depends on device) expressed in the mask set errata sheet. These are documents starting with
MSExxx.
You only have 3 transmit buffers, if you wish to take the CAN id into consideration, you can change the transmit buffer priority when loading the register and reprioritize in the ISR depending on pending messages after a transmission.
Regards,
Alban.