Skip to main content
Graduate II
February 17, 2024
Question

RTOS Survey

  • February 17, 2024
  • 8 replies
  • 3281 views

Bored Saturday, I was just curious who's using which RTOS:

  • FreeRTOS (Hideous Hungarian HorroRTOS, where code is fugly and deficiencies are touted as features ;)
  • Azure/ThreadX (can't wait to see how Microsoft poisons this one ;)
  • RTX (any actual CubeMX support?  Really?  Documentation?)
  • Other(s)?
  • None/Bare Metal (including HAL-only)

Just wondering...

 

    This topic has been closed for replies.

    8 replies

    Super User
    February 18, 2024

    None. I'm too ѕtupid to learn it.

    JW

    Graduate
    February 18, 2024

    The last time I used an RTOS was decades ago, and that system became so sluggish that it had to be re-written without the RTOS. I prefer not to have any other software between me and the hardware (thankfully my projects are all smallish these days). 

    Technical Moderator
    February 18, 2024

     

    Hi @David Littell ,

    This is not specific for STM32 but a survey done 1 year ago by Embedded : it may interest You .

    IMG_6485.jpeg

    IMG_6484.jpeg

    IMG_6487.jpeg

    Ciao

     STOne-32


    The asked question is below 

    Explorer II
    February 18, 2024

    I use my own and I am very happy with it! : https://adastra-soft.com/

     

    Graduate
    February 18, 2024

    Was looking at possibly using Azure/ThreadX, but found some of the code to be too deficient to use.
    Now MS have ditched it and handed it over to Eclipse for an uncertain future.

    Currently working with CMSIS-RTOS2 RTX just for the RTOS (not using any driver bindings).

    Bare metal is just not worth it for big projects.

    Others may be interesting, but I am not willing to pay royalties or similar unless a customer insists and foots the bill for it.

    Explorer II
    February 18, 2024

    For my information I would be interested to know what you find deficient in Azure/ThreadX.

    Graduate
    February 18, 2024

    One thing in particular was the PPP stack disabling IRQ for every single byte of transfer, making it impossible to get any kind of speed to a serial link.

    Visitor II
    February 19, 2024

    On my end, it depends.

    For smaller projects, I opt for bare metal setups.

    Generally, when I require a web server or in general "connectivity features", I tend to use an RTOS. While I previously utilized FreeRTOS, I'm currently working on my third project with AzureRTOS.

    There are pros and cons compared to FreeRTOS. However, what sets AzureRTOS apart is the abundance of libraries it offers, including USB and networking capabilities.

    On the downside, there is a lack of community for AzureRTOS, and documentation is also lacking. The lack of docs for me is the most painful stuff because you need to dig into sources & example to find out possible solutions.

    I'm curious why Microsoft did not rebrand and share Express Logic's documentation.

     

     

    D.

    Graduate
    February 19, 2024

    I don't use a full-blown RTOS. But I do use the Crossworks Tasking Library (CTL) that comes free with the Rowley Crossworks/CrossStudio IDE.

    That gives me prioritised tasking, mutexes, semaphores, queues and the like, with IDE support so I can see where each thread is and its stack trace.

    When I started with arm cortex, I don't think there were many free offerings. (The company I work for pays for Crossworks, and consequently Rowley give support where there is a bug or I don't understand things.) And now I stick with CTL because it does what I need and I know it (i.e. I don't need to put time and effort in to learning it).

    Visitor II
    February 21, 2024

    I have used FreeRTOS for a long time, very successfully on STM32 MCUs.

    I am big fan of VxWorks. Also Micro-C/OS-II/-III is not bad (esp. for education):
    Micro-Controller Operating Systems - Wikipedia

    There is also embOS (Segger):
    embOS - RTOS (segger.com)

    IAR might have its own RTOS:
    Integrated software and RTOS | IAR

    MDK-ARM: Keil:
    Keil Real-time Kernels and Operating Systems

    AZURE-RTOS: yes, STM goes meanwhile this route - but OK for me:
    it was before ThreadX - also a very popular RTOS:
    What is Azure RTOS ThreadX? | Microsoft Learn

    STM32 supports several systems: e.g. EWARM (IAR), MDK_ARM (Keil), STM32CubeIDE (meanwhile AZURE-RTOS, before and maybe still as legacy: FreeRTOS, CMSIS RTOS).

    After getting familiar with AZRE-RTOS - I like it: it has so many additional components, like a FatFS, USB Stacks (including USB ECM). I cannot complain, pretty feature reach.

    At the end: it does not matter which RTOS I use: there is a need to study documents and to get familiar, but at the end: the methodology of all the RTOS's are similar: if you understand the concept behind RTOS - all are quite similar in usage (a need to check examples and LIB functions anyway needed when changing).

    And: if you do not like any of these RTOS's - you can still implement "RTOS-like" on bare metal. Or create your own RTOS, e.g. I did with "ActiveObjects", similar to QuantumLeaps, QP:
    Key concept: Active Object (state-machine.com)

    At the end: you would "reinvent the wheel": the biggest benefit to go with an RTOS vendor is the support for libraries, like FatFS, Network, USB, FlashStorage... and AZURE RTOS is pretty "complete" here.
    (it is not just the Kernel - it is the native support for applications which matters most - for me).

    Super User
    February 19, 2024

    As @Davide Dalfra said, It Depends!

    Generally, my projects tend to at the level where there's no need for an RTOS - so HAL/bare-metal.