CMSIS RTOS Compatibility

The Cortex-M RT port also offers a compatibility layer with the CMSIS RTOS specification. The CMSIS RTOS API is mapped almost 1 to 1 on the RT native API, there is close to no overhead caused by the layer.

The implemented CMSIS RTOS features are:

  • Threads, mapped on RT threads management.
  • Timers, mapped on RT virtual timers.
  • Signals, mapped on RT events.
  • Semaphores, mapped on RT counting semaphores.
  • Mutexes, mapped on RT mutexes.
  • Pools, mapped on RT memory pools.
  • Messages, mapped on RT mailboxes.

Most CMSIS data types are mapped directly on the equivalent RT types.

Notes

The ChibiOS/RT own API is a superset of the features specified by the CMSIS specification.

Unfortunately CMSIS does not specify many features typical of an RTOS, for example and not limited to:

  • Critical Zones handling and requirements.
  • ISRs requirements.

The equivalent RT API is available to fill this kind of gaps. The RT API is available even when using the CMSIS RTOS compatibility layer, mixed use is permitted.

When an exact behavior is not specified by CMSIS RTOS the equivalent RT behavior is to be expected.

RT Performance

Fastest RTOS? Reasons for this statement and performance data.

learn more

RT vs NIL

Features comparison and use cases.

learn more