/* ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /** * @mainpage ChibiOS/RT * @author Giovanni Di Sirio (gdisirio@users.sourceforge.net). * *

Chibi ?

* I didn't want a serious name for this project. It is the Japanese word for * small as in small child. So ChibiOS/RT * @htmlonly (ちびOS/RT) @endhtmlonly * means small Real Time Operating System. * Source Wikipedia. * *

Features

* - Free software, GPL3 licensed. Stable releases include a exception clause * to the GPL. * - Designed for realtime applications. * - Easily portable. * - Preemptive scheduling. * - 128 priority levels. Multiple threads at the same priority level allowed. * - Round robin scheduling for threads at the same priority level. * - Offers threads, virtual timers, semaphores, mutexes, condvars, * event flags, messages, mailboxes, I/O queues. * - No static setup at compile time, there is no need to configure a maximum * number of all the above objects. * - PC simulator target included, the development can be done on a PC * under Linux or Windows.
* Timers, I/O channels and other HW resources are simulated in a guest OS * process and the application code does not need to be aware of it. * - No *need* for a memory allocator, all the kernel structures are static * and declaratively allocated. * - Optional, thread safe, Heap Allocator subsystem. * - Optional, thread safe, Memory Pools Allocator subsystem. * - Blocking and non blocking I/O channels with timeout and events generation * capability. * - Minimal system requirements: about 6KiB ROM with all options enabled and * speed optimizations on. The size can shrink under 2KiB by disabling the * the unused subsystems and optimizing for size. * - Almost totally written in C with little ASM code required for ports. * - Optional Hardware Abstraction Layer (HAL) with support for many device * driver models and device driver implementations. * . *

Related pages

* - @subpage lic_faq * - @subpage goals * - @subpage target * - @subpage architecture * - @subpage concepts * - @subpage articles * - @subpage testsuite * . */