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?
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).