ChibiOS/RT

ChibiOS/RT is a compact and fast[2] real-time operating system supporting multiple architectures and released under a mixture of the GPL3 and Apache 2.0 licenses (depending on module). It is developed by Giovanni Di Sirio.

ChibiOS/RT
DeveloperGiovanni Di Sirio
Written inC, Assembly language
OS familyReal-time operating systems
Working stateStable
Source modelOpen source
Initial release2007 (2007)
Latest release20.3.2 / August 1, 2020 (2020-08-01)
Repository
PlatformsIntel 80386, ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7,[1] PowerPC, e200z, Atmel AVR, TI MSP430, STM8, Freescale Coldfire, Renesas H8S
Kernel typeMicrokernel
LicenseGPL3 or proprietary
Official websitewww.chibios.org

Commercial licenses are available from ChibiOS. Additional products include ChibiOS/HAL, a hardware abstraction layer compatible with ChibiOS/RT, and ChibiStudio, a free development environment based on Eclipse, the GNU Compiler Collection, and the OpenOCD JTAG debugging pod.

Metrics

ChibiOS/RT is designed for embedded applications on 8, 16 and 32 bit microcontrollers; size and execution efficiency are the main project goals.[3] 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 is capable of over 220,000 created/terminated threads per second and is able to 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 distribution as test reports.

Features

The ChibiOS/RT microkernel supports:

All system objects, such as threads, semaphores, timers, etc., can be created and deleted at runtime. There is no upper limit except for the available memory. In order to increase system reliability, the kernel architecture is entirely static, a memory allocator is not required (but is available as an option), and there are no data structures with upper size limits like tables or arrays. The system APIs are designed to not have error conditions such as error codes or exceptions.

The RTOS is designed for applications on embedded devices and includes demo applications for various microcontrollers:

Contributed ports are also available for the Coldfire and H8S families.[5]

ChibiOS/RT has also been ported to the Raspberry Pi[6] and the following device drivers have been implemented: Port (GPIO), Serial, GPT (General-Purpose Timer), 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.

uGFX

ChibiOS/RT is fully supported by the GUI toolkit µGFX. µGFX was formerly known as ChibiOS/GFX.

See also

References

  1. Di Sirio, Giovanni (n.d.). "The ARMv7-M Port". chibios.org. ChibiOS. Retrieved 20 August 2020. This port includes support for all devices using one of the following cores: Cortex-M3, Cortex-M4, Cortex-M7
  2. RTOS performance data on emb4fun.de Archived 2013-01-11 at Archive.today
  3. "ChibiOS/RT statistics on ohloh.net". Archived from the original on 2014-04-14. Retrieved 2010-01-30.
  4. A detailed explanation of multithreading in ChibiOS/RT
  5. Additional supported architectures on emb4fun.de Archived 2013-01-11 at Archive.today
  6. "ChibiOS/RT on the Raspberry Pi".
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.