System Requirements

Minimum system specs

A certain set of minimum system requirements must be satisfied in order to use ChibiOS/RT on a new architecture:

  • 8bits CPU architecture minimum.
  • A real stack pointer that can be positioned anywhere in the data address space. The OS could be ported to architectures with an hardware stack but I wouldn't recommend it because the context switch would become ridiculously inefficient.
  • Support for maskable interrupt sources and at least an OS-dedicated timer.
  • Support for standard C89 (C99 supported) language with no architecture-related non-standard restrictions. Non standard mandatory language extensions or restrictions may result in reduced functionality or impossibility of use.
  • 256/512bytes RAM permanently allocated to the kernel and its two mandatory threads “idle” and “main”, the exact amount depends on the architecture. This figure is not inclusive of the HAL and device drivers (non mandatory components).
  • 8KiB of program space for a full featured kernel scalable down to about 1.2KiB for reduced configurations. This figure is not inclusive of the HAL and device drivers (non mandatory components).

Recommended system specs

  • Efficient instruction set for linked lists traversal. The kernel makes extensive use of simple and bidirectional linked lists so the performance is directly affected by the supported addressing modes, number of registers etc.
  • Uniformly sized C pointers.
  • 2KiB RAM.
  • 16KiB ROM/Flash.

Recommended upper limit

The ChibiOS/RT applicability ends when one or more of the following features are required by your application:

  • Separation between user code space and kernel space, both just logical or using a Memory Management/Protection Unit. Applications in ChibiOS/RT are supposed to be monolithic and trusted. The kernel and the application share the same address space.
  • Multiple applications. ChibiOS/RT supports the single multithreaded application model.
  • Multicore SMP architectures. Currently ChibiOS/RT only supports a single core unless running multiple distinct and separate OS instances. A true multicore kernel is planned for when multicore MCUs will become commonly available.
chibios/documents/requirements.txt · Last modified: 2011/10/03 21:31 by giovanni
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.3