Hi @omkardixit
[EDIT: I realized that I didn't list what I consider to be the most important feature of an RTOS]
What is your experience level with working with RTOSes? I'm asking because I would be hesitant to consider MQX as a starting point or as the RTOS for a new product.
It's not that it isn't a good quality product but with it's change in licensing (around five years ago) to a pay licensing model on line support by other users has dried up. I still support products written with MQX so these comments are not coming from a position of ignorance. I'm surprised that the documentation is still there, I guess that's a residual of NXP (Freescale actually) actively promoting their products with MQX from 10 years ago. My biggest concern with MQX is that there aren't examples with NXP's SDK and when I worked with it, I had to write/support drivers (that are freely available in the SDK) by hand which ended up being a lot more work. There are KSDK (Freescale's "Kinetis SDK") MQX code and examples available but KSDK is no longer actively supported.
To net it out, I would consider MQX to be a suboptimal RTOS for learning and/or creating new applications.
To be honest, there is very little difference in the different RTOSes available for Kinetis (or really any MCU). In all of them provide a level of basic functionality with standard resources and while there are differences in performance/overhead/code size they all require the same thought processes.
When you're selecting an RTOS, I would consider the three four most important criteria to be:
- Execution Monitoring. I think it's absolutely imperitive to have the ability to see the execution state of the application tasks as well as stack, queue, semaphore, etc. information. Very helpful in finding inefficiencies in an application as well as debugging. As far as I know, this is not available with MQX.
- Cost. This is licensing and support costs. If this is a one off hobby project, then licensing cost isn't an issue - but if you're creating a new product, the cost can be significant.
- On line support. If other people are using the RTOS, then they are producing new code and probably have experienced the same issues you have. Even if they aren't a quick question can lead to somebody helping you to an answer.
- Driver availability and support. As I said, when I've done MQX applications I've had to create the driver code myself - life is too short to recreate code somebody else has working and is being used and validated by many other people.
Let me know if you want to talk more about this.
myke