<div dir="ltr"><div><div><div><div>Hello,<br><br></div><div>Real time operating systems can make some of the more complicated embedded software tasks a lot simpler.  From what I've seen, it makes it a lot more like threaded POSIX programming (with mutexes, semaphores, signals, etc).  Given their utility, I was wondering if people might be willing to share their experiences with different RTOS implementations and what they thought about the overall quality of different projects.<br>
</div><div><br></div><div>To start:<br></div>I've recently worked with FreeRTOS on some projects.  It is open source and seems reasonably popular.  It worked pretty well for my project (however, make sure that you set the interrupt priority of any interrupts that call FreeRTOS functions to be less than that of the scheduler or the system will be unstable).  <br>
<br>Once the interrupt priorities were correct, it delivered on its guarantees and worked well.  It is supported on many different microcontrollers, but sometimes only for specific IDEs/compilers.  Its main downside is that it appears to be somewhat difficult to port to a new platform ("non-trivial" as it says in the docs).<br>
<br></div>I would love to have one RTOS that I can port and use across most platforms.  The Atom Threads RTOS looks interesting since it says it is "Highly portable ANSI C code not tied to any compiler", but I haven't tried it yet.<br>
<br><br><br><br></div>Thanks,<br></div>Charlie West<br></div>