Community Overlay

This guide describes community overlay goals and its usage with ChibiOS.

Historical notes and reasons

ChibiOS/RT has been so far a successful open source project with a commercial offering available.

One of the challenges in handling an open source project and a commercial version of the RTOS has been testing and quality control. The open source project attracted many contributors and a lot of excellent code has been proposed for inclusion in the main source tree.

This is an indicator of success but also created a problem for the commercial side of the project. Reviewing, testing and maintaining all the contributed code proved to not be viable, contributors tend to disappear after a while but the code remains and has to be maintained. The effort proved to be overwhelming because time constraints, lack of HW and/or instrumentation, etc. Users expect for problems to be solved and questions to be answered.

The decision was to draw a clear line between the core code and the community-contributed part. Core code is what you can expect to get support on and have your questions answered, community code is provided as-is, support and maintenance is left to the authors/maintainers, if any.

Starting from ChibiOS version 3.0 the project has been split in two parts:

  1. The Core ChibiOS codebase. This code is thoroughly tested and maintained, bugs are tracked and fixed, the code is released in stable packages regularly.
  2. The Community Overlay codebase. All the contributed code goes initially into this public repository without review. It is an incubator, the code that survives time and users feedback can eventually be migrated to the core codebase. The repository is organized as an “overlay” over the code core.

Releases included both the core code and the overlay. The two parts together form the global ChibiOS project.

References

Later were lots of forum talks about acceptance way for contributed code: 1 2 3

Organization

Now code organized as follow:

  • SVN repository on Sourceforge. This repository contains the core codebase only.
  • Git mirror on Github. Just a read only mirror periodically synchronized with SVN repo.
  • Community submodule on Github. There is all contributed code.

Using it via Git or SVN

SVN

There is no special procedure. Just check out code:

svn checkout svn://svn.code.sf.net/p/chibios/svn/trunk chibios-svn

The community submodule will be acquired automatically into the /community subdirectory.

Git

You need additional step to acquire community code.

  • Get main code: git clone git@github.com:ChibiOS/ChibiOS.git ChibiOS-RT
  • Get community code: git clone git@github.com:ChibiOS/ChibiOS-Contrib.git ChibiOS-Contrib

Note: it is better to clone them in the same directory side by side (not inside).

Contributing Code to the Overlay

Contact the forum user “barthess” via PMs or in the IRC channel. Or create pull request using github.

Community Contributions in the Overlay

Tiva Support

maintained by Marco Veeneman:

  • I2C
  • PWM
  • Serial
  • SPI
  • GPT
  • MAC
  • PAL
  • SysTick

NRF51xx Support

maintained by Fabio Utzig:

  • PAL
  • Serial
  • SysTick

STM32 enhanced Support

maintained by Uladzimir Pylinski:

  • FSMC NAND
  • FSMC SRAM
  • EICU
  • 1-wire

maintained by Andrea Zoppi:

  • FSMC SDRAM
  • DMA2D
  • LTDC

maintained by Michael Spradling:

  • CRC

New driver models in HAL

1-wire

  • Supports virtually all platforms having PWM but tested only on STM32.

EICU

  • Able to capture data on all available timer's channels.
  • Supports timers with different capture channel numbers (from 4 to 1).
  • Able to capture pulse width, pulse period or both.

High level device drivers

maintained by RoccoMarco:

  • NRF24L01
  • MAX7219
  • L3GD20
  • LIS3MDL
  • LSM303DLHC
  • LSM6DS0
 
chibios/community/guides/community_overlay.txt · Last modified: 2015/08/24 16:01 by barthess
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.3