cancel
Showing results for 
Search instead for 
Did you mean: 

Azure RTOS, FreeRTOS or SafeRTOS?

ennioaloisini
Associate III

Hi all,

I am writing to you to find out which is the best RTOS between Azure RTOS, FreeRTOS and SafeRTOS both from the point of view of performance and from the point of view of flexibility and ease of use?

I have to develop some projects with STM32U5, STM32G0, STM32F4 and STM32F7. What could be the best RTOS solution for these processors?

I would also like to know where I can find a guide from scratch that explains step by step how to create a project using CubeMX and IAR with Full Speed ​​or High Speed ​​USB, SPI, I2C and GPIO with these RTOS?

Thank you very much for the support.

5 REPLIES 5
SHs
ST Employee

Hello @ennioaloisini ,

Azure RTOS (formerly ThreadX) is known for its high performance and small footprint, making it suitable for devices with limited resources. It offers advanced features like file management, GUI, and networking stacks.It has a straightforward API and is well-documented, which can be beneficial for rapid development. Azure RTOS supports a wide range of STM32 microcontrollers and integrates well with STM32CubeMX and IAR.

FreeRTOS provides a good balance between performance and resource usage, which is ideal for many embedded systems. It is highly configurable and can be tailored to the needs of the project. FreeRTOS has a large community and extensive documentation, making it accessible for beginners.It is supported on a wide range of devices, including STM32 series.

SafeRTOS is designed to be a safety-certifiable version of FreeRTOS, suitable for safety-critical applications. It is less flexible than FreeRTOS due to its focus on compliance with safety standards. It may require more expertise to use effectively, especially in applications that require safety certifications.  Like FreeRTOS, it supports various microcontrollers, including STM32.

For your STM32U5, STM32G0, STM32F4, and STM32F7 projects, any of these RTOSes could be suitable. However, if your applications require safety certifications, SafeRTOS might be the best choice. For general use, FreeRTOS and Azure RTOS are both excellent options, with Azure RTOS providing additional features that might be beneficial depending on your project's needs.

For comprehensive understanding and guidance on USB implementation, I recommend referring to this USB training program.

Hope it helps.

 

Please mark my answer as best by clicking on the “Accept as solution" button if it fully answered your question. This will help other users find this solution faster.

Thanks for your contribution.

Hi @SHs,

thank you very much for the answer.

I read that also Azure RTOS is a good solution when safety standards or certifications are required. Is it correct?

Where could I find good guide, tutorials or videos that explain how to develop a project with Azure RTOS or Free RTOS from scratch?

Let me know!

Thank you very much for the support.

Hello @ennioaloisini ,

Your research is on point, Azure RTOS is indeed engineered to support applications that must comply with stringent safety certifications.

You can find here an introduction to Azure RTOS for STM32 and its integration within STM32Cube, also this video might help, it is a demonstration on how to create a simple project from scratch using STM32CubeIDE and AzureRTOS ThreadX.

For FreeRTOS, this video will guide you through the configuration with STM32CubeMx, also this video can be useful for FreeRTOS configuration basics.

Please mark my answer as best by clicking on the “Accept as solution" button if it fully answered your question. This will help other users find this solution faster.

Thanks for your contribution.

Hi @SHs ,

thank you very much for the support.

Currently, I'm leaning towards ThreadX because it has USB, networking, a file system, memory wear levelling, and a GUI all in the same family.

Using FreeRTOS you have to get ST's USB drivers going (not bad), LwIP for networking (lord help you if you have an issue, it's your problem), FatFS for a file system (elm-chan means well and fills a gap left by RTOS developers who just provide the basics), Segger/TouchGFX/??? for GUI.    FreeRTOS gives task/memory/message/semaphore... resource management, but all of the other stuff is pasted on from other volunteer sources.

At least ThreadX has a funded development group to give you the other facilities so you don't have to piece them together.

A big plus for me was that ThreadX also has the safety certifications that don't get with FreeRTOS, but SafeRTOS.