Содержание

ОСРВ (RTOS)


ChibiOS

Некоторое время назад, я встретил в интернете очень интересный проект:ChibiOS/RT


Общая информация

ChibiOS — проект компактной многозадачной операционной системы реального времени (ОСРВ) для встроенных систем. Проект состоит из трех независимых продуктов:

Кроме того, проект включает ChibiStudio - бесплатную среду разработки.

Лицензия

Компоненты ChibiOS доступны под лицензиями открытого ПО GPL3 или Apache 2.0. Есть несколько коммерческих лицензионных опций

Компоненты ChibiOS

ChibiOS/RT предназначена для встраиваемых систем реального времени, где важное требование для выполняемых приложений - это высокая производительность и компактный код. Данная ОС РВ характеризуется высокой мобильностью, маленьким объёмом и, в основном, по своей архитектуре оптимизирована для чрезвычайно эффективного переключения между задачами.

Основные преимущества:

ChibiOS/NIL создавался с идеей привнести RTOS функциональность для очень маленьких устройств и является вполне законченной RTOS. Основные преимущества:

Вне зависимости от размера, ChibiOS/NIL очень эффективна и поддерживает широкий набор функций.

ChibiOS/HAL предназначен для реализации уровня абстракции между приложением и базовым аппаратным обеспечением (периферией) микроконтроллера.

HAL предоставляет API верхнего уровня для доступа к общей периферии MCU, такой как GPIO, ADC, SPI и т.д., а также реализует частотно-зависимую и платформо-зависимую инициализацию.

Этот компонент распространяется только под лицензией Apache License 2.0 и является 100% бесплатным даже для коммерческого использования. Основные особенности:


Автором операционной системы является господин Giovanni Di Sirio, который живет в прекрасном городе Салерно, Италия. Официальный сайт проекта http://chibios.org.

В принципе, там есть вся необходимая информация для знакомства и начала работы с системой. Единственный минус - сайт англоязычный. Поэтому часть информации буду дублировать тут, в качестве шпаргалки, попутно добавляя свои комментарии и различные полезные ссылки.

Поддерживаемые архитектуры

ОС поддерживает много архитектур. Этот список постоянно расширяется. Вот список поддерживаемых архитектур, который был на официальном сайте до момента разделения ChibiOS на два компонента RT и NIL и выделения HAL в отдельный компонент:

Архитектура ядра Компилятор Поддерживаемые платформы
ARM Cortex-M0 (ARMv6-M) GCC LPC11xx, LPC11Uxx, STM32F0xx
ARM Cortex-M0 (ARMv6-M) RVCT LPC11xx, LPC11Uxx, STM32F0xx
ARM Cortex-M3 (ARMv7-M) GCC LPC13xx, STM32F1xx, STM32F2xx, STM32L1xx
ARM Cortex-M3 (ARMv7-M) IAR LPC13xx, STM32F1xx, STM32F2xx, STM32L1xx
ARM Cortex-M3 (ARMv7-M) RVCT LPC13xx, STM32F1xx, STM32F2xx, STM32L1xx
ARM Cortex-M4 (ARMv7-ME) GCC STM32F3xx, STM32F4xx
ARM Cortex-M4 (ARMv7-ME) IAR STM32F3xx, STM32F4xx
ARM Cortex-M4 (ARMv7-ME) RVCT STM32F3xx, STM32F4xx
ARM7 GCC AT91SAM7x, LPC214x
MegaAVR GCC ATmega128, AT90CAN128, ATmega328p, ATmega1280
MSP430 GCC MSP430F1611
Power Architecture e200z GCC/HighTec SPC56x (all)
STM8 Cosmic STM8L, STM8S
STM8 Raisonance STM8L, STM8S

Есть еще несколько платформ, поддержка которых пока не включена в официальные релизы и доступна из репозитория проекта. Это такие платформы:

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

Актуальную информацию по поддерживаемым архитектурам можно посмотреть на официальном сайте:

Поддержка аппаратуры

Очень большим достоинством ChibiOS является реализация драйверов периферии - Hardware Abstraction Layer (HAL). С использованием ChibiOS/HAL вполне реально писать прикладное ПО которое будет работать без дополнительных (или с минимальными) действий не только на разных кристаллах одной архитектуры, но и на разных архитектурах. Все кристалло и архитектуро зависимые вещи выносятся в файлы описания платы board.h/board.c. Набор поддерживаемой периферии довольно широк - детально его можно посмотреть в разделе Supported Platforms

Инструментальные средства

«Из коробки» поддерживаются три компилятора (см.Поддерживаемые архитектуры):

Для быстрого старта, автором сделан пакет ChibiStudio. Это по сути полностью готовая и настроенная связка Eclipse+GCC+нужные плагины. Скачать ее можно со страницы загрузки: ChibiStudio

Кстати, ChibiStudio (т.е. Eclipse), похоже, единственный пакет имеющий плагин для визуализации процесса отладки. Ни под IAR, ни под Keil я таких плагинов не нашел. Для людей привычных к работе с GCC и Eclipse процесс отладки будет довольно удобным.

В ChibiStudio есть еще один довольно удобный и нужный плагин - ChibiOS Board Generator. С его помощью можно создавать файлы board используя визуальный интерфейс. Более подробно этот процесс описан тут: ChibiOS Board Generator

Я лично больше пользуюсь Keil MDK, наверное в силу привычки, но и в этом случае особых проблем с отладкой не возникало. При наличии общих понятий о работе RTOS и наличии исходников ChibiOS/RT все вопросы быстро разрешаются.

Ссылки

ChibiOS/RT. Начало работы

Внешние ссылки

Сайт проекта. Документация.

Официальный сайт ChibiOS
Страница документации по ChibiOS
ChibiOS на GitHub
ChibiOS/RT free embedded RTOS на Sourceforge
ChibiOS/RT 2.6.9 full documentation
ChibiOS/RT 3.1.2 online documentation

Статьи и обзоры:

STM32F103C8 + ChibiOS + uGFX + LCD WH1602 пример
ARMka: Инфраструктура проекта для ChibiOS/RT
ChibiOS и STM32 «Тема предназначена для глобального обсуждения аспектов разработки приложений под STM32, используя ОС реального времени ChibiOS. В первом топике буду вставлять нужные ссылки по теме, на документацию и т.д.»
Исследуем работу стека нитей в ChibiOS «Операционные системы реального времени (RTOS) существенно облегчают разработку качественной программной начинки для микроконтроллеров. Делается это введением некоторых абстракций, таких как нити (потоки исполнения) и примитивы синхронизации (семафоры, мютексы, события, сообщения), потоки ввода/вывода, устройства слоя абстракции аппаратуры (HAL) и другие. В этой статье мы рассмотрим внутреннюю организацию нитей (threads), изолированных потоков исполнения кода, в ChibiOS.»
Генерация board файлов для ChibiOS (ChibiOS Board Generator) «Создание board файлов для новой платы при использовании ChibiOS может оказаться очень трудоемким процессом. ChibiStudio или специальный плагин для среды Eclipse могут сделать его намного проще.»


ОСРВ (RTOS)