Brief Description
ChibiOS/RT is designed for deeply embedded real time applications where execution efficiency and tiny code size are desiderable features.
The system is implemented as a library to be linked with the application code, the OS and the application code together form the image to be loaded on the target device.
Features
The kernel provides a rich features set, it offers: preemptive multithreading, 128 priority levels, optional round-robin support, unified interrupts handling, support for preemptable interrupt handlers, virtual timers, semaphores, mutexes, condition variables, synchronous messages, mailboxes, event flags, Abstract Channels, I/O queues, heap and memory pools allocators.
Of course, the above mechanisms are not always required in most applications, it is possible to selectively exclude the unused subsystems reducing the total code size.
Size
The kernel is very compact, on a reference Cortex-M3 (STM32) platform the kernel size ranges from 1.2KiB minimum up to 5.2KiB maximum size. Size metrics are available for all platforms, as test reports, into the source distribution.
Performance
On a reference STM32 platform clocked at 72MHz the kernel is capable of context switching in 1.41 microseconds, taking/releasing a semaphore takes 1.21 microseconds, spawning a thread (the whole create-execute-terminate cycle) takes 4.64 microseconds.
The timings are measured using the internal test suite, it is possible to inspect the benchmarking methodology and replicate the results by simply running the included demos. Performance metrics are available for all platforms, as test reports, into the source distribution.
Comments