There is a common misconception that there is an RTOS named CMSIS-RTOS. CMSIS-RTOS is actually just an API definition. Its implementation is largely a glue layer to the underlying RTOS, but where functional differences exist between the two, some glue code will be present to map functionality.
ARM developed CMSIS-RTOS with the same goal in mind as when CMSIS was developed: to add a consistent layer of abstraction that reduces vendor lock-in. The original CMSIS was meant to reduce Silicon vendor lock-in by providing uniform methods for middleware to access common Cortex-M functionality. It accomplished this goal – there are only a few variants of FreeRTOS ports for the thousands of Cortex-M-based MCUs it supports. Likewise, ARM is now attempting to reduce RTOS vendor lock-in by making the RTOS itself easier to change out – by providing...