Features Matrix

Implemented features on the various supported architectures and platforms.

Kernel Features

ChibiOS/RT kernel features matrix and the support on the various platforms:

Subsystem
ARM7 ARM Ctx-M0 ARM Ctx-M3/4 PPC e200zX STM8 MSP430 AVR Sim x86
Kernel base threading services
Yes Yes Yes Yes Yes Yes Yes Yes
Static kernel
Yes Yes Yes Yes Yes Yes Yes Yes
Priority based scheduling
Yes Yes Yes Yes Yes Yes Yes Yes
Round robin scheduling
Yes Yes Yes Yes Yes Yes Yes Yes
Preemption
Yes Yes Yes Yes Yes Yes Yes No
Virtual timers
Yes Yes Yes Yes Yes Yes Yes Yes
Timeout on wait primitives
Yes Yes Yes Yes Yes Yes Yes Yes
Zero latency interrupts1
Yes2 No Yes3 No No No No No
Interrupts nesting
No4 Yes Yes No4 No No No No
ISRs abstraction
Yes Yes Yes Yes Yes Yes Yes Yes
Threads registry
Yes Yes Yes Yes Yes Yes Yes Yes
Counting semaphores
Yes Yes Yes Yes Yes5 Yes Yes5 Yes
Binary semaphores
Yes Yes Yes Yes Yes Yes Yes Yes
Mutexes (priority inheritance)
Yes Yes Yes Yes Yes Yes Yes Yes
Condition variables
Yes Yes Yes Yes Yes Yes Yes Yes
Event flags
Yes Yes Yes Yes Yes7 Yes6 Yes7 Yes
Synchronous messages
Yes Yes Yes Yes Yes Yes Yes Yes
Mailboxes (message queues)
Yes Yes Yes Yes Yes Yes Yes Yes
I/O queues
Yes Yes Yes Yes Yes8 Yes Yes8 Yes
Abstract streams and channels
Yes Yes Yes Yes Yes Yes Yes Yes
Core memory manager
Yes Yes Yes Yes Yes Yes Yes Yes
Heap allocator
Yes Yes Yes Yes Yes Yes Yes Yes
Memory pools allocator
Yes Yes Yes Yes Yes Yes Yes Yes
Debug trace buffer
Yes Yes Yes Yes Yes Yes Yes Yes
Debug assertions
Yes Yes Yes Yes Yes Yes Yes Yes
Debug time parameters check
Yes Yes Yes Yes Yes Yes Yes Yes
Debug threads working area filling
Yes Yes Yes Yes Yes Yes Yes Yes
Debug stack checking
Yes9 Yes9 Yes9 No No No No No
Debug per-thread CPU time
Yes Yes Yes Yes Yes Yes Yes Yes
Hardware Abstraction Layer (HAL)
Yes Yes Yes Yes Yes Yes Yes Yes
  1. Defined as interrupt sources unaffected by the kernel and with no kernel-related added latency.
  2. FIQ sources are unaffected by the kernel.
  3. NVIC priorities above a programmable level are unaffected by the kernel.
  4. It could be supported but would have performance cost.
  5. 8 bits counters.
  6. 16 bits per thread.
  7. 8 bits per thread.
  8. 127 bytes maximum depth.
  9. Implemented as stack position check at context switch time.

HAL Support

The HAL subsystems supports a variety of abstract device drivers, the actual implementation for the various supported platform varies. The current support situation is:

Device Driver ADC CAN EXT GPT I2C ICU MAC PAL PWM RTC SDC SER SPI UART
USB
AT91SAM7x Yes No Yes No Yes No Yes Yes Yes No - Yes Yes No No
AVR Yes No No Yes Yes Yes - Yes No - - Yes Yes No -
LPC11xx No No No Yes No No - Yes No - - Yes Yes No -
LPC13xx No - No Yes No No - Yes No - - Yes Yes No No
LPC214x No - No No No No - Yes No - - Yes Yes No No
MSP430 No No No No No No - Yes No - - Yes No No -
SPC56x (all) Yes Yes No No No Yes - Yes Yes - - Yes Yes No -
STM32F0xx Yes - Yes Yes Yes Yes - Yes Yes Yes - Yes Yes Yes -
STM32F1xx Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
STM32F2xx Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
STM32F3xx Yes Yes Yes Yes Yes Yes - Yes Yes Yes - Yes Yes Yes Yes
STM32F4xx Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
STM32L1xx Yes - Yes Yes Yes Yes - Yes Yes Yes No Yes Yes Yes Yes

The “MMC/SD over SPI” device driver is supported on all the platforms with a functional SPI driver, the MMC driver itself is portable but requires an SPI interface.

 
chibios/matrix.txt · Last modified: 2013/12/09 16:27 by giovanni
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.3