 Okay, let's speak a little bit more in detail about the free rtOS When you look at the market of the rtOS is you will find out that there are many pens of different rtOS flavors There are old ones like Micro COS to Micro COS 3 there are RtOS is made by specific manufacturers or tool developers like Circle OS from Resonance or RTX from Kyle. There are different OSes that come public like Embed OS and Free rtOS is quite an old one, but the advantage is it is still developed it was created by Richard Berry and He still moderates the forum about it it was Maintained by a company real-time engineers limited in England and It has as well different flavors in terms of commercial usage and safety certification So you can get free rtOS free of charge. It has got a very relaxed license So I think you can use it even in closed projects however, if you need a really commercial support you can opt for the Open rtOS Where you pay for the support to the real-time engineers and You get the support you get the response from the team who develops that there is as well a safe rtOS which is one blend of the free rtOS with a safety certification I Don't know which exactly but you can review it on the web The documentation and the source codes are available on free rtOS.org and The forum is as well available here However Recently the free rtOS was acquired by Amazon good news is they want to invest in free rtOS and They are still working on that recently. They put it on the public github and They split the development to standard free rtOS and the two flavors and they as well create on top a free rtOS plus Which is a platform for different drivers like networking TCP IP memory management IO and I think file system You can get this as a package plus you can get as well additional packages for testing different scenarios test cases and specific peripheral drivers Good news. It's it's still developed and maintained main features of This blend of the rtOS is that it can work in both preemptive or cooperative real-time kernel This is a compile option. So you have to choose Before you compile and then when you compile it's fixed then it can be as low as 10 kilobytes in flesh and Just a few hundreds of bytes in RAM but then it scales with number of features that you want to add and The RAM rises with an amount of tasks that you create If you want to support a low power modes So if your application needs to sleep the free rtOS supports a tick less mode this gives you the feature of stopping the system timer and Keeping the microcontroller for example in a stop or sleep mode Until some external event wakes up the microcontroller So it can be an event from the real-time clock, but it can be as well in coming communication button press and so on but In the meantime, there is no periodic interrupt so the time base is stopped and microcontroller doesn't need to consume anything dynamic as A good operating system should do it gives you means for intertask communication and for synchronization of different hardware so It gives you cues for messages Where you can pass a message from a task to another task or from an interrupt to the task It gives you a binary and counting semaphores That allow to guard a limited pool of resources mutex is that allow to synchronize or Give an exclusive access to one specific resource and There is as well a very interesting thing like events or group events where several different situations have to occur either serially or in parallel and When all of them or just one of them happens the task can be awakened waiting on these flags plus the management of these events is Quite flexible because you don't need to put the messages only in the fifth O manner but you can as well place the messages at the top of the queue and You can look in the queue you can count the messages. So It's very flexible in which order you send and receive the events Additionally, if you need a little bit more precise scheduling of different asynchronous actions You can use software timers where you can plan ahead For example in 10 seconds. I want to execute a thing so you register a callback function and The timeout in the software timer mechanism and after 10 seconds from now The free RTOS will launch your function it will jump to the callback that you provided and It will execute the code that you preset further The free RTOS is equipped or written with a lot of macros that mark entry and exit to different functions so if you put a tracing messages or Tracing management into these macros You can see in the trace record every entry into the task every exit from the task memory allocations faults and Lot of other things. So it gives you quite a nice way of debugging and If you are able to collect this information for example over serial line with a printf style or with a memory record or Something else trace recorder like for example Kyle offers you have got quite a nice way of Seeing what happens inside your microcontroller on top of the standard set of functions or application interface API and the free RTOS was chosen as one of the targets for the Standardization based on the CMSIS RTOS API from ARM so free RTOS RTX and Probably some other Arteos arteosis have now the same interface Which means if you want to port from one RTOS to the other It's very easy because the interface from the application layer is still the same