Open LnnrtS opened 9 months ago
Sounds good. I think the UID can just be a incremental - no need for anything fancy.
When reading the message I would first look in rx_message_queue
.
std::optional
could be enhanced by std::expected
. Just once we're already touching thisOne thing of interest is that the IPCC hardware peripheral used for the inter-core communication, actually has 6 channels. We were just using 1 channel for all communication. I took advantage of this with the File System access implementation in the STS-coreproc-chanmap branch
, and am using a new IPCC channel just for that (also using a std::variant).
Use a variant rather than a enums.
To support multiple simultaneous requests on different cores, we could attach a unique ID to each message and the handler would attach the same ID to its response. This would allow two A7 cores to make the same request type at the same time, and are guaranteed to not get the other core's response. Such a situation could come up with modules getting filesystem access since the modules run on both A7 cores.
Something like: