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!
Have you considered FreeRTOS or did you already rule it out for some reason?
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.
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?
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.
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 https://www.beningo.com/7-steps-to-selecting-the-r... (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.
Thank you very much for the detailed response. Initially we chose Segger, However, over time, we are realizing that we might need to reconsider our decision.
Based on your suggestion, we are contemplating shifting to FreeRTOS instead of Segger. Our primary reason for this consideration is that we can retain the Middleware of Segger while leveraging the benefits of NXP's SDK (which is based on FreeRTOS) since we are using NXP's RT595 (Switched from STMU5).
Furthermore, Segger currently lacks support for the GPU drivers in the RT595, and it also lacks the driver for the WiFi module we intend to use (FreeRTOS fulfills both of these requirements)
We are now deliberating whether it would be advantageous to switch the RTOS at this stage in order to combine the strengths of both Middlewares. We would greatly appreciate your opinion on this matter.
I've not worked with the RT595 so I can't offer much specific advice.
When considering the change, you have to look at what your return on investment will be to make the change and for the long-term support of the product. If you tightly coupled the RTOS to your application, you could end up with a lot of rework. Best case, it might just be a few days or rework.
That said, a lot has changed in the last year or so. I'd recommend that you also take a look a Zephyr. I have a sneaking suspicion that it is going to be the long-term "winner" in the RTOS wars. I don't know if they support what you need and the learning curve might not be worth it.
If FreeRTOS meets your needs, implementation is simplified, you can leverage the middleware you like and the long-term support you need is there, then give it a shot. Worst case, you try it with FreeRTOS, you don't like it, and you revert to SEGGER.