For real time systems we generally use Freertos, uCos and MQX. We have extensive experience with these OS and we normally use them on ARM7, Cortex M3 and ColdFire architectures. This format allows us to work with multi-task programming, and the creation of generic drivers to operate shared devices, which use the resources of these OS, create a HAL layer which allows us to quickly migrate those drivers from one set of uC’s to another.