How can resources and memory be effectively shared between two RTOS
How can resources and memory be effectively shared between two RTOS instances on a single-core processor?
1 Reply
From @Jean Labrosse, creator of the Micrium RTOS:
Two RTOSs on a single core? That’s kinda weird. Why do you want to do that? For academic reasons or for practical reasons? I can see emulating one RTOS using a wrapper on top of another RTOS and use ‘either’ API but, to run two RTOSs at the same time doesn’t make much sense to me. With the wrapper method, you can create tasks using the Nuttx API which would get translated to a FreeRTOS task but your application would still see the Nuttx RTOS. That being said, emulating one RTOS with another using a wrapper is not an easy as it seems. I actually did 4 such wrappers and you have to write a lot of code to compensate for features that don’t exist on the underlying RTOS. Besides, the performance of the RTOS being emulated will suffer from the wrapper code. Converting arguments from one RTOS API to the other and converting error return values from the underlying RTOS upstream.