FreeRTOS vs RTX nrf5 sdk v11


we are planning to implement RTOS in our application. we are exploring both freertos and rtx. any comments on these parameters will help us in making the decision;

  1. which one has better implementation in the nrk52 sdk v11 so far. Or in other words which one will be less cumbersome to implement.
  2. a quick search on the forum shows people are facing issues more with freertos. is this because more people are using it or does it has more bugs at the moment.
  3. on the performance front, which one is more suitable with the resources available on nrf52832.
  • Hey.

    Out of RTX and Freertos, Freertos will be the best solution right now. We have set the RTX port as "experimental" in the SDK for now, since it is not yet 100% stable.

    Many are having issues with Freertos as well. This is both because of code complexity and sometimes due to bugs in the Freertos Port.

    The idea of having an RTOS running concurrently with our softdevice is in its core not ideal. The softdevice must always have the ability to interrupt other tasks and run timing critical protocol tasks. This makes the RTOS unable to create safe critical sections, where it cannot be interrupted.

    In my experience, many users use RTOS when it is not really needed. The only reason to use an RTOS is if you are making a very large and complex modular system, where modules must be added and removed seamlessly. The drawbacks with RTOS is a more complex system, which is even harder to debug than normal programs.

    On the nrf52, there is 8 interrupt levels. You will in most cases be able to create a sufficient program using normal tasks triggered by these interrupts.

    PS: On most microcontrollers, you will have real time capabilities regardless of using an RTOS.

    Best regards Anders

  • thank you for your detailed answer. i now have a better understanding and will go with freertos IF we plan to implement any OS for our application.