HOME

TheInfoList



OR:

ChibiOS/RT is a compact and fast real-time operating system supporting multiple architectures and released under a mix of the GNU General Public License version 3 (GPL3) and the Apache License 2.0 (depending on module). 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 An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
, the GNU Compiler Collection, and the OpenOCD Joint Test Action Group (
JTAG JTAG (named after the Joint Test Action Group which codified it) is an Technical standard, industry standard for verifying designs and testing printed circuit boards after manufacture. JTAG implements standards for on-chip instrumentation in ele ...
) debugging pod.


Metrics

ChibiOS/RT is designed for embedded applications on
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
s of 8-, 16-, and
32-bit In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32-bit units. Compared to smaller bit widths, 32-bit computers can perform large calculation ...
s. 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 computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
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 In computer science, a priority queue is an abstract data-type similar to a regular queue or stack data structure in which each element additionally has a ''priority'' associated with it. In a priority queue, an element with high priority is se ...
levels * Round-robin scheduling for threads at the same priority level *Software
timers A timer is a specialized type of clock used for measuring specific time intervals. Timers can be categorized into two main types. The word "timer" is usually reserved for devices that counts down from a specified time interval, while devices th ...
*Counting semaphores * Mutexes with support for the priority inheritance algorithm *
Condition variables In concurrent programming, a monitor is a synchronization construct that allows threads to have both mutual exclusion and the ability to wait (block) for a certain condition to become false. Monitors also have a mechanism for signaling other th ...
*Synchronous and asynchronous
Messages A message is a discrete unit of communication intended by the source for consumption by some recipient or group of recipients. A message may be delivered by various means, including courier, telegraphy, carrier pigeon and electronic bus. A ...
* Event flags and handlers * Queues *Synchronous and asynchronous I/O with
timeout Time-out, Time Out, or timeout may refer to: Time * Time-out (sport), in various sports, a break in play, called by a team * Television timeout, a break in sporting action so that a commercial break may be taken * Timeout (computing), an enginee ...
capability *Thread-safe
memory heap Memory pools, also called fixed-size blocks allocation, is the use of pools for memory management that allows dynamic memory allocation comparable to malloc or C++'s operator new. As those implementations suffer from fragmentation because of ...
and memory pool allocators. *Hardware Abstraction Layer with support for
ADC ADC may refer to: Science and medicine * ADC (gene), a human gene * AIDS dementia complex, neurological disorder associated with HIV and AIDS * Allyl diglycol carbonate or CR-39, a polymer * Antibody-drug conjugate, a type of anticancer treatment ...
,
CAN Can may refer to: Containers * Aluminum can * Drink can * Oil can * Steel and tin cans * Trash can * Petrol can * Metal can (disambiguation) Music * Can (band), West Germany, 1968 ** ''Can'' (album), 1979 * Can (South Korean band) Other * C ...
, GPT (general-purpose timer),
EXT Ext, ext or EXT may refer to: * Ext functor, used in the mathematical field of homological algebra * Ext (JavaScript library), a programming library used to build interactive web applications * Exeter Airport (IATA airport code), in Devon, England ...
, I²C,
ICU ICU commonly refers to: * Intensive care unit, a special department of a hospital ICU may also refer to: Organisations Universities * Information and Communications University, South Korea *Istanbul Commerce University, Istanbul, Turkey * Intern ...
, MAC, MMC/SD, PAL, PWM, RTC, SDC, Serial,
SPI SPI may refer to: Organizations * Indian Protection Service (''Serviço de Proteção ao Índio''), Brazil * Shotmed Paper Industries, an Egyptian paper manufacturers * Simulations Publications, Inc., a former US board game publisher * Sony P ...
, and USB drivers. *Support for the
LwIP lwIP (lightweight IP) is a widely used open-source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a worldwide networ ...
and uIP TCP/IP stacks. *Support for the
FatFs FatFs is a lightweight software library for microcontrollers and embedded systems that implements File Allocation Table, FAT/exFAT file system support. Written on pure ANSI C, FatFs is platform-independent and easy to Porting, port on many hardwa ...
file system library. All system objects, such as
threads Thread may refer to: Objects * Thread (yarn), a kind of thin yarn used for sewing ** Thread (unit of measurement), a cotton yarn measure * Screw thread, a helical ridge on a cylindrical fastener Arts and entertainment * ''Thread'' (film), 2016 ...
, semaphores,
timers A timer is a specialized type of clock used for measuring specific time intervals. Timers can be categorized into two main types. The word "timer" is usually reserved for devices that counts down from a specified time interval, while devices th ...
, etc., can be created and deleted at runtime. There is no upper limit except for the available memory. To increase system reliability, the kernel architecture is entirely static, a memory allocator is not needed (but is available as an option), and there are no
data structure In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
s with upper size limits like tables or arrays. The system application programming interfaces ( APIs) are designed to not have error conditions such as error codes or exceptions. The RTOS is designed for applications on embedded systems (devices) and includes demo applications for various
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
s: *
STMicroelectronics STMicroelectronics N.V. commonly referred as ST or STMicro is a Dutch multinational corporation and technology company of French-Italian origin headquartered in Plan-les-Ouates near Geneva, Switzerland and listed on the French stock market. ST ...
STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx; STM8S208x, STM8S105x, STM8L152x; ST/Freescale SPC56x, MPC56xx *
NXP Semiconductors NXP Semiconductors N.V. (NXP) is a Dutch semiconductor designer and manufacturer with headquarters in Eindhoven, Netherlands. The company employs approximately 31,000 people in more than 30 countries. NXP reported revenue of $11.06 billion in 2 ...
LPC11xx, LPC11Uxx, LPC13xx, LPC2148 *
Atmel Atmel Corporation was a creator and manufacturer of semiconductors before being subsumed by Microchip Technology in 2016. Atmel was founded in 1984. The company focused on embedded systems built around microcontrollers. Its products included micr ...
AT91SAM7S, AT91SAM7X,
megaAVR AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit Reduced instruction set computer, RISC single-chip microcontrollers. AVR was one of the f ...
* Texas Instruments (TI) – MSP430x1611; TM4C123G, TM4C1294 * Microchip Technology – PIC32MX Contributed ports are also available for the
Coldfire The NXP ColdFire is a microprocessor that derives from the Motorola 68000 family architecture, manufactured for embedded systems development by NXP Semiconductors. It was formerly manufactured by Freescale Semiconductor (formerly the semiconductor ...
and
H8S H8 is the name of a large family of 8-bit, 16-bit and 32-bit microcontrollers made by Renesas Technology, originating in the early 1990s within Hitachi Semiconductor. An administrator on the Renesas user community boards commented in 2011 that ...
families. ChibiOS/RT has also been ported to the Raspberry Pi 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 graphical user interface (GUI) toolkit µGFX, formerly named ChibiOS/GFX.


See also

*
Comparison of open-source operating systems These tables compare free software / open-source operating systems. Where not all of the versions support a feature, the first version which supports it is listed. General information Supported architectures Supported hardware Gen ...

A detailed explanation of multithreading in ChibiOS/RT


References


External links

*
ChibiOS/RT project page and support
{{DEFAULTSORT:Chibios Rt Real-time operating systems Embedded operating systems Free software operating systems ARM operating systems Microkernel-based operating systems Microkernels