Recommendation on Choice of RTOS

Started by ukhan 1 year ago5 replieslatest reply 1 year ago164 views
We're targeting to launch a product based on STM32U5. The two potential candidates for the choice of RTOS/middleware we want to decide from are Segger's EmbOS and Microsoft's AzureRtos.

It's not clear to us as to what could be more beneficial for us in the long run
- EmbOs with Segger's dedicated support OR
- AzureRtos being open source & Community support

Based on our talks with Segger, they've added a number of components to their middleware for Cortex M33 (on which U5 is based). As for AzureRtos, since ST has partnered with Microsoft - there are already various example codes available for the U5.

Any suggestions would be much appreciated.
Thanks a lot!
[ - ]
Reply by MarkDSylvaFebruary 1, 2022

Have you considered FreeRTOS or did you already rule it out for some reason?

[ - ]
Reply by ukhanFebruary 1, 2022

What's the added benefit of going with FreeRTOS?
We did consider it, but then AzureRTOS seemed a better alternative having partnered with ST and having middleware components which are added to it's portfolio available in stmCube Ecosystem.

[ - ]
Reply by vbhuntFebruary 1, 2022

It is nearly impossible to describe added benefits of a particular RTOS without a more detailed understanding of your requirements.  What are the areas of middleware that your project requires?  What are the performance requirements? Do you have price/profile/storage/peripheral/security requirements?  How dependent on a particular platform/architecture/company is your product willing to be? Is portability more important than performance or vice-versa? 

[ - ]
Reply by ukhanFebruary 3, 2022

Thanks for your detailed response.

Our application would comprise file system, graphical user interface, USB & networking stack. From the looks of AzureRtos and based on our talks with Segger's FAE about EmbOS, both have middleware which meets our requirements.

Performance is at the core of our application, however price won't be an issue. 

The product doesn't require very high level of security and as long as we're satisfied with the support, dependence on a particular platform won't be problematic. 

As for Portability vs. Performance, frankly speaking, we're not very sure - however, we'd appreciate tools like TraceX and Segger's System View that are helpful in debugging application.

Would be great to know if there exists a thorough comparison of the various RTOSs based on the metrics you mentioned - helping in making final decision.

[ - ]
Reply by beningjwFebruary 6, 2022

From what you have described, most likely either EmbOS or AzureRTOS will meet your requirements. Both are high-quality RTOSes that were well thought out in their design and implementation. (I wouldn't even consider FreeRTOS. It's a poorly written RTOS that everyone loves because it was free when there were only commercially available RTOSes. Their original model was to get you hooked on free and then pay for an upgrade to the commercial version. Now it's to get you hooked and pay for AWS).

TraceX and SystemView are interesting tools for RTOS tracing, but pretty basic.  You should really look at Percepio Tracealyzer. It provides far more capabilities and is easier to use at a reasonable cost. 

If you are struggling to choose between them, you might try to use the RTOS Selection KT Matrix that I put together a few years ago. An article about it can be found at (The images for some reason are broken so I need to fix them, but the topic and links to the excel sheet still work). 

Good luck and if you have additional follow-up questions, let us know.