ChibiOS/RT
ChibiOS/RT is a compact and fast real-time operating system for microcontrollers supporting multiple architectures and released under a mix of the GNU General Public License version 3 and the Apache License 2.0. It is developed by Giovanni Di Sirio.
Commercial licenses are available from ChibiOS. Additional products include ChibiOS/HAL, a hardware abstraction layer compatible with ChibiOS/RT, and ChibiStudio, a free integrated development environment based on Eclipse, the GNU Compiler Collection, and the OpenOCD Joint Test Action Group debugging pod.
Metrics
ChibiOS/RT is designed for embedded applications on microcontrollers of 8-, 16-, and 32-bits. Size and execution efficiency are the main project goals. As reference, the kernel size can range from a minimum of 1.2 KiB up to a maximum of 5.5 KiB with all the subsystems activated on a STM32 Cortex-M3 processor. The kernel can achieve over 220,000 created/terminated threads per second and can perform a context switch in 1.2 microseconds on an STM32 @ 72 MHz. Similar metrics for all the supported platforms are included in the source code distribution as test reports.Features
The ChibiOS/RT microkernel supports:- Preemptive multithreading
- 128 priority queue levels
- Round-robin scheduling for threads at the same priority level
- Software timers
- Counting semaphores
- Mutexes with support for the priority inheritance algorithm
- Condition variables
- Synchronous and asynchronous Messages
- Event flags and handlers
- Queues
- Synchronous and asynchronous I/O with timeout capability
- Thread-safe memory heap and memory pool allocators.
- Hardware Abstraction Layer with support for ADC, CAN, GPT, EXT, I2C, ICU, MAC, MMC/SD, PAL, PWM, RTC, SDC, Serial, SPI, and [Universal Serial port|Serial Bus|USB] drivers.
- Support for the LwIP and uIP TCP/IP stacks.
- Support for the FatFs file system library.
The RTOS is designed for applications on embedded systems and includes demo applications for various microcontrollers:
- STMicroelectronics – STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx; STM8S208x, STM8S105x, STM8L152x; ST/Freescale SPC56x, MPC56xx
- NXP Semiconductors – LPC11xx, LPC11Uxx, LPC13xx, LPC2148
- Atmel – AT91SAM7S, AT91SAM7X, megaAVR
- Texas Instruments – MSP430x1611; TM4C123G, TM4C1294
- Microchip Technology – PIC32MX
ChibiOS/RT has also been ported to the Raspberry Pi and the following device drivers have been implemented: Port, Serial, GPT, I2C, SPI and PWM.
It is also possible to run the kernel in a Win32 process in a software I/O emulation mode, allowing easy application development without the need for physical hardware. An example is included for MinGW compiler.