Thursday, June 06, 2013

ChibiOS: легковесная RTOS

Inline image 2

В этой статье я хочу представить и вкратце описать члена семейства ОС реального времени — ChibiOS.

Лицензия

В первую очередь про лицензирование. ChibiOS является свободной RTOS и имеет несколько вариантов лицензирования — GPL 3.0, GPL 3.0 c некоторыми исключениями при линковке и коммерческую лицензию. 
Код драйверов в большинстве случаев идет под лицензией Apache-2.0.
Со всеми вариантами лицензирования можно ознакомиться на сайте проекта. Представленные варианты должны полностью удовлетворить любителей, а также компании, которые не хотят платить за использование данной операционной системы.

Структура

Проект логически разделен на несколько подсистем:
  • HAL прослойка с реализацией драйверов под различные устройства,
  • базовые функции ядра под определенную архитектуру(обслуживание прерываний, переключение контекста и т.д.),
  • код самого ядра операционной системы.

В приложение ко всему есть несколько надстроек над этим всем делом.
Сама ChibiOS реализована на C и ассемблере но есть также обертки для C++.

Ядро

ChibiOS, как и любая другая уважающая себя RTOS имеет планировщик задач с поддержкой вытеснения и на данный момент имеет два варианта функционирования:
  • кооперативное распределение времени между задачами с одним приоритетом
  • Round-Robin планирование задач с одинаковым приоритетом с указанием кванта времени на задачу

В данным момент опции планировщика задаются глобально во время компиляции.
Для переключения контекста, планировщиком ядра используется системный счетчик который также используется для виртуальных таймеров.
Естественно, любое прерывание может привести к переключению контекста если в этом есть необходимость.

Read more: Habrahabr.ru
QR: Inline image 1