A business colleague recently described the problems he had several years ago convincing developers to us an RTOS that didn’t seem to fit the standard expectations of what an RTOS should look like. “SSX5 was a sales flop, in great part because it met no standards and appeared to be missing lots of features that were considered RTOS basics.”
His experience highlights the difficulty that developers have when evaluating new embedded software, such as RTOSes. The embedded market has rather narrowly defined what an RTOS is (and what it isn’t).
Here are some RTOS selection approaches that we have observed but do not recommend. Perhaps these resonate with your experience:
1. Assume you need a traditional RTOS and then find a free or open source RTOS like FreeRTOS to try/play with and learn. It then becomes a de facto standard for how an RTOS should work. It is not examined very critically because it is free.
2. Start working with a free RTOS. If you can get a propotype or proof of concept running then go with it for the project.
3. License a brand name traditional commercial RTOS because ‘everyone else is using it’ (back in the 80s the saying was, “You never get fired for buying IBM.) yet never take the time to understand how it is structured or why. Just start coding.
4. Use a standard feature checklist or other generic comparison matrix to try to make an RTOS decision. This is obviously flawed if there is no understanding of how the RTOS or scheduling model will meet your particular application requirements.
5. Use the RTOS that you used in the last company/project. Because the devil you know is better than the devil you don’t know.
6. The most senior engineer picks the RTOS that he is most comfortable with, ignoring your pleas for a better selection process.
7. You start by addressing the perceived “pain points” in a new design (which is not usually believed to be the RTOS) but could be USB, Wi-Fi or some communications protocol you have never used before. You give little thought to the underlying design aspects of the RTOS since you expect it to work like any other RTOS.
8. Write your own RTOS or scheduler. Perhaps your assumption is that the DIY project will be exactly what you need (as opposed to a multi-purpose tool) or that your application is so simple that a commercial RTOS would add too much overhead.