Table of Contents

ChibiOS/LIB – High‑Level Extensions for ChibiOS RTOS Kernels

ChibiOS/LIB is an extension library that adds higher‑level mechanisms on top of the ChibiOS/RT and ChibiOS/NIL kernels.

It provides portable, architecture‑independent components such as queues, allocators, delegates, and dynamic object management, allowing you to build more complex applications while keeping the underlying kernel small and deterministic.

In Brief

Added Functionalities

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

Binary Semaphores

Two‑state semaphores (taken / released), a useful variant of counting semaphores for simple synchronization patterns.

Mailboxes

Queues of messages between Thread/ISR and Thread/ISR, where messages are pointer‑sized values. Suitable for passing references or small tokens with well‑defined ownership.

Pipes

Character queues between threads, typically used for stream‑oriented communication or simple byte‑based protocols.

Objects FIFOs

Copy‑less exchange of fixed‑size messages between Thread/ISR and Thread/ISR. Messages can have any size (fixed per FIFO), avoiding extra copies for efficient data transfer.

Core Allocator

A very fast allocator for memory blocks from a global heap:

Heap Allocator

A classic alloc/free scheme for variable‑size memory blocks, suitable for components that require dynamic, size‑flexible allocation.

Pool Allocator

An efficient way to allocate and free fixed‑size blocks:

Objects Factory

Dynamic allocation and management of kernel or custom objects:

Dynamic Threading (RT only)

Support for dynamically allocated threads:

Delegate Threads

Mechanism to call functions in the context of another thread:

Job Queues

Infrastructure to send job structures to one or more job‑server threads for execution:

Object Caches

Caches for frequently used objects with automatic aging:

Explore the features set and comparison with core RT/NIL features.