I have a question regarding usage of the Rx mailboxes, and how they can be configured to best manage incoming messages.
I have filters and masks set to receive important messages in particular mailboxes. Some messages I decode and process (first five mailboxes), some messages get passed to the other bus (next 3 mailboxes). However, all messages are logged to the SD card (remaining mailboxes). My problem is that I cannot guarantee that my important messages are processed by the correct mailbox handler as these messages can be accepted by the 'catch-all' mailboxes.
I am guessing that I have to abandon filters and masks and handle all incoming messages with the General Handler, and filter my important messages in software.
The Kinetis manual does mention:
• Selectable priority between mailboxes and Rx FIFO during matching process
• Powerful Rx FIFO ID filtering, capable of matching incoming IDs against either 128 extended, 256 standard, or 512 partial (8 bit) IDs, with up to 32 individual masking capability
Is there anything I could do to make use of the mailboxes?
I realize that I could close-down my 'catch-all' mailboxes to only receive messages outside of the 'important' message range but my application has the ability to read and write Filters to the SD, and also modify them during run-time, which would potentially make this approach quite complex.
Any suggestions much appreciated.
EDIT: It looks like configuring a pair of mailboxes for a particular message might be a solution, though this obviously reduces the number of available unique tasks to 7 ID's or ranges of ID's.
I have filters and masks set to receive important messages in particular mailboxes. Some messages I decode and process (first five mailboxes), some messages get passed to the other bus (next 3 mailboxes). However, all messages are logged to the SD card (remaining mailboxes). My problem is that I cannot guarantee that my important messages are processed by the correct mailbox handler as these messages can be accepted by the 'catch-all' mailboxes.
I am guessing that I have to abandon filters and masks and handle all incoming messages with the General Handler, and filter my important messages in software.
The Kinetis manual does mention:
• Selectable priority between mailboxes and Rx FIFO during matching process
• Powerful Rx FIFO ID filtering, capable of matching incoming IDs against either 128 extended, 256 standard, or 512 partial (8 bit) IDs, with up to 32 individual masking capability
Is there anything I could do to make use of the mailboxes?
I realize that I could close-down my 'catch-all' mailboxes to only receive messages outside of the 'important' message range but my application has the ability to read and write Filters to the SD, and also modify them during run-time, which would potentially make this approach quite complex.
Any suggestions much appreciated.
EDIT: It looks like configuring a pair of mailboxes for a particular message might be a solution, though this obviously reduces the number of available unique tasks to 7 ID's or ranges of ID's.
Last edited: