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;
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…
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.
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.
On most microcontrollers, you will have real time capabilities regardless of using an RTOS.