RTOS options for PlatformIO Projects?

Hi All,

I have an application developed in PlatformIO that is developed in the “superjloop” style (i.e. an infinite loop, processing inputs as they’re available).

For more flexibility, I’d like to modify this to use an RTOS, where I can have separate threads, be able to set ahead priorities where needed, have some type of signaling/semaphore between threads, and have a mutex for protection.

What options do I have with PlatformIO? I’ve used FreeRTOS & some other older RTOSes before, but haven’t yet found anything here that is similar. A full RTOS like FreeRTOS is prob. not needed, just the features in the paragraph above.

Thanks,
Fred.

Here is a full list with supported frameworks/SDKs/OSs:

What is your board?

1 Like

Thanks for the response. Current board is the Teensy 3.2, but we may be flexible in using a different CPU if it offers much better support for the libs we want.

How about ARM mbed OS? We are going to intorudce a support for v5.5.2 this week. You can try development version:

pio platform unisntall teensy
pio platform install https://github.com/platformio/platform-teensy.git

https://twitter.com/PlatformIO_Org/status/1206972862193635330
See example https://github.com/platformio/platform-teensy/tree/develop/examples/mbed-rtos

1 Like

Thanks, I will definitely check that out.

Try also this libary: https://github.com/ftrias/TeensyThreads

1 Like

That looks pretty lightweight. What is the mechanism in that package for inter-thread signaling (e.g. one thread has some data ready, and wants to wake up another thread to read it)?

I think there is no mechanism for it in TeensyThreads. If you you use mbed, there a Signals.

1 Like