I’m working on a command parsing and IO module based on freeRTOS. My command parsing task receives a formatted hex string and converts it to a packet with address fields, etc. From there the parser needs to forward the packets on to the appropriate IO task.
I’m wondering what the best architecture is for sending the packets from the parser task to the other tasks is?
- A separate queue for each task?
- A single queue guarded by a mutex, each task peeks to check the message address and only receives if the address matches?
- Is there a a way of having a stream of packets that are addressed to individual tasks?
Any input on good practice when architecting a system like this is greatly appreciated.