ChibiOS/LIB is an RTOS extension library. This library can be added on top of RT and NIL kernels increasing the core RTOS functionality with higher level mechanisms.

In Brief

  • Entirely portable, no dependencies on architecture nor compilers.
  • Can enhance RT and NIL with high level constructs.
  • Clean code base.
  • The commercial version can be used on RT and NIL, no need to purchase it twice.

Added Functionalities

For a detailed description of functionalities please refer to the reference manuals, in brief:

Binary Semaphores

Two states semaphores. An useful variant of counter semaphores.


Queues of messages between Thread/ISR and Thread/ISR, messages are pointer-sized variables.


Characters queues between threads.

Objects FIFOs

Copy-less exchange of fixed-size messages between Thread/ISR and Thread/ISR. Messages can have any size.

Core Allocator

A very fast way to allocate memory blocks from a global heap. It is a two ways allocator, block can be allocated both from top downward or from base upward.

Heap Allocator

The classic alloc/free of variable-size memory blocks.

Pool Allocator

An efficient way to allocate/free fixed-size blocks.

Objects Factory

A way to allocate kernel objects or custom objects dynamically, objects are assigned a name and can be used by reference or by name. Objects have a reference counter and disappear when the last reference is released.

Dynamic Threading

Dynamically allocated threads, this is an RT-only feature not available on NIL.