ST in STMcube prefers FreeRTOS, Keil his RTX. Unfortunately, for example STM32F1 not exist drivers compatible with CMSIS 2.02 and so there is the question of whether to use RTX or FreeRTOS? It is one of them significantly better?
I recommend no OS at all!
why?
without the reason your recccomedation is useless. i can say blue is better than red.
FreeRTOS hands down. Great interface, portability, MPU support, quality code.
thanks. I will look closely at freertos.
nice to see someone give a proper reason.
Proper reason?
"Great interface, portability, MPU support, quality code." is way too short to actually be a proper reason. That sentence doesn't say anything about how great the interface is for the other OS, or what difference there is in portability or MPU support or if there is any difference in code quality. And it doesn't say what actual needs that resulted in that recommendation.
But back to the beginning - you haven't written any information giving the indication that you actually need, or would get any advantages from, using an OS. With zero needs documented by you, people can't give suggestions of what would be a better or worse OS or if you would be just as well off without one. So why complain about lack of reasons from someone else when you didn't start yourself?
Yes, that is true.
But you asked me to give a recommendation without giving any criteria at all upon which to base that recommendation!
In fact, because you have given no criteria - anyone's recommendation here is equally useless!
... could equally apply to the "no OS at all" option!
OK quarrel / thread I established myself, I add a little bit of information. In my OS has meaning if - is use third-party Middleware components, emWin for LCD, Network components from MDK-Pro for Ethernet - a large project with a number of non-related function
An OS allows you to respond very quickly to real time events, because an interrupt can wake a high priority task without the need to wait for your super loop to finish whatever it is doing (unless you are willing to load interrupt mode, which is usually a bad idea). So for your needs, I certainly see a benefit in using an OS. And yes, having used both above mentioned products intensively in the past (and future...) I can testify that I found FreeRTOS to be far supirior to its commercial counterpart.
My suggestion is to use CMSIS RTOS compliant RTOS.
CMSIS RTOS is RTOS specifically tailored to Cortex-M microcontrollers (more can be found here: http://www.keil.com/pack/doc/CMSIS/RTOS/html/index.html).
Keil has made an CMSIS RTOS implementation with using RTX underneath.
Also if you mention MDK-Pro, Middleware and emWin most of these components rely on an CMSIS RTOS being present.
We added CMSIS RTOS API support to FreeRTOS in PolyMCU framework (github.com/.../polymcu). You can easily switch the RTOS by only changing a single variable. We also created a CMSIS RTOS conformance test to ensure any CMSIS RTOS behaves correctly: github.com/.../README.md
PolyMCU is an Open-Source firmware framework based on CMSIS - primarily targetting ARM Cortex-M. The framework supports GCC and LLVM toolchain. As it is based on CMake, it supports Windows/Linux/MacOS. In term of firmware, it supports Baremetal/ARM RTX/FreeRTOS environment and major MCU vendors (Freescale, Nordic, NXP, ST).