Our great sponsors
-
https://github.com/nasa/cFE Here is somewhat an example of what I mean. Although, I believe their architecture actually pokes each thread and uses pipes rather than masking as I was talking about.My stuff doesn’t live anywhere to link sadly.
-
You will also need to be careful with blocking, because this clogs the event-loop that each of your tasks will be running. Among others, that means that you cannot use vTaskDelay(), for example. Instead, you would need to replace all such blocking mechanisms with event-driven equivalents. For example, you need to implement time-events instead of the blocking delay(). Here, you might want to take a look at the "FreeACT" minimal real-time framework based on FreeRTOS.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
qpc
QP/C Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
The QP/C framework already seems to solve all your problems, so if you're asking how to organize your code, this is the best answer you can get. It also seems a little inconsistent that you are taking FreeRTOS, so you are not considering writing your own RTOS kernel. But at the same time, you are rolling out your own event-driven framework as though it was somehow easier, which is not the case and probably quite the opposite.