8-900-374-94-44
[email protected]
Slide Image
Меню

Chibios rt: ChibiOS: легковесная RTOS / Хабр

RTOS ChibiOS/RT – операционная система для микроконтроллеров

RTOS ChibiOS/RT – операционная система для микроконтроллеров.

ChibiOs/RT – операционная система реального времени (ОСРВ, RTOS – real-time operating system). Реальное время в операционных системах — способность операционной системы обеспечить требуемый уровень сервиса в определенный промежуток времени. Операционная система, реагирующая на событие за определенный, заданный промежуток времени. ChibiOs/RT предназначена для встраивания приложений, работающих в реальном времени. Эта ОСРВ отличается высокой мобильностью, компактными размерами и, главным образом имеет свою собственную уникальную архитектуру, подходит для быстрого и эффективного переключения контекста.

Основные функции ChibiOs/RT

Функционал применения ChibiOs/RT:

  1. Эффективное и портативное ядро.
  2. Лучшая в классе переключения контекста.
  3. Множество поддерживаемых архитектур и платформ.
  4. Статическая архитектура.
  5. Динамическое расширение, динамические объекты поддерживаются с помощью дополнительного слоя.
  6. Богатый набор примитивов для ОСРВ: потоки (threads), виртуальные таймера (virtual timers), семафоры (semaphores), мьютексы (mutexes), переменные условия/синхронизации (condition variables), сообщения (messages), очереди (queues), флаги событий (event flags) и почтовый ящик (mailboxes).
  7. Поддержка алгоритма наследования для мьютексов.
  8. HAL (Hardware Abstraction Layer — слой аппаратных абстракций),поддержкаабстрактныхплатформ: GPIO, UART/USART, ADC, CAN, EXT, GPT, I2C, ICU, MAC, MMC, PWM, RTC, SDC, SPI, UART, USB, USB-CDC.
  9. Инструментарий для отладки ОСРВ.

Области применения ChibiOs/RT:

  1. Автомобильная электроника.
  2. Робототехника и промышленная автоматика.
  3. Бытовая электроника.
  4. Системы управления электроэнергией.
  5. DIY.

Производительность ChibiOs/RT [Таблица 1].

Таблица 1. Синтетические тесты. Версия ядра 2.4 ChibiOs/RT

Платформа-Частота -Компилятор Переключение контекста Размера ядра, байт
ARM7(ARM)/LPC2148-48-GCC4.6.22.03µS9224
ARM7(THUMB)/LPC2148-48-GCC4.6.22.43µS6052
ARMCM0/LPC1114-48-GCC4.6.22.60µS5500
ARMCM0/LPC1343-72-GCC4.6.21.02µS6172
ARMCM3/STM32F1xx-72-GCC4.6.21.03µS6172
ARMCM3/STM32F4xx-168-GCC4.6.20.40µS6172
MSP430F1611-8-GCC3.2.316.93µS6108
AVR/ATMega128-16-GCC4.3.011.24µSN/A ~7500
STM8L152-16-CosmicN/AN/A ~6500
STM8L152-16-Raisonance9. 03µSN/A ~7000
STM8S105-16-CosmicN/AN/A ~6500
STM8S105-16-Raisonance9.03µSN/A ~7000
PA/SPC563M64-80-GCC4.4.11.11µS11944

Ядро ChibiOs/RT было перенесено на множество различных архитектур и для различных компиляторов, однако текущая стратегия заключается в поддержке меньшего числа конкретных микроконтроллеров, и для текущего набора официально поддерживаемых микроконтроллеров обеспечить полноценный HAL. HAL — слой абстрагирования, реализованный на уроне удобных пользовательский функций, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, работающим с периферией микроконтроллера. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части, алгоритма работы программы, таким образом, чтобы большая часть кода, работающая в режиме ядра, не нуждалась в изменении при запуске ОСРВ на различных платформах микроконтроллеров.

ChibiOs/RT предлагает отличную поддержку для нескольких популярных семейств микроконтроллеров. Для семейств, которые не входят в официальный дистрибутив существует сообщество и поддержка от авторов сторонних семейств микроконтроллеров.

Официально поддерживаемые платформы

Следующий список включает в себя архитектуры и платформы поддерживаемые ChibiOs/RT [таблица 2]. Следующие платформы тщательно протестированы и стабильно работаю со своим набором инструментария. Для каждой архитектуры представлен список поддерживаемых семейств микроконтроллеров.

Таблица 2. Официально поддерживаемые платформы ChibiOs/RT

Ядро архитектурыКомпиляторПоддерживаемые платформы
ARM Cortex-M0 (ARMv6-M)GCCLPC11xx, LPC11Uxx, STM32F0xx
ARM Cortex-M0 (ARMv6-M)RVCTLPC11xx, LPC11Uxx, STM32F0xx
ARM Cortex-M3 (ARMv7-M)GCCLPC13xx, STM32F1xx, STM32F2xx, STM32L1xx
ARM Cortex-M3 (ARMv7-M)IARLPC13xx, STM32F1xx, STM32F2xx, STM32L1xx
ARM Cortex-M3 (ARMv7-M)RVCTLPC13xx, STM32F1xx, STM32F2xx, STM32L1xx
ARM Cortex-M4 (ARMv7-ME)GCCSTM32F3xx, STM32F4xx
ARM Cortex-M4 (ARMv7-ME)IARSTM32F3xx, STM32F4xx
ARM Cortex-M4 (ARMv7-ME) RVCTSTM32F3xx, STM32F4xx
ARM7GCCAT91SAM7x, LPC214x
MegaAVRGCCATmega128, AT90CAN128, ATmega328p, ATmega1280
MSP430GCCMSP430F1611
Power Architecture e200zGCC/HighTecSPC56x (all)
STM8CosmicSTM8L, STM8S
STM8RaisonanceSTM8L, STM8S

Концепция ядра ChibiOS/RT

Соглашение по именованию:

Все имена в ChibiOs/RT имеют следующую концепцию записи ch<группа><действие><суффикс>.

Возможны следующие группы: Sys, Sch, Time, VT, Thd, Sem, Mtx, Cond, Evt, Msg, Reg, SequentialStream, IO, IQ, OQ, Dbg, Core, Heap, Pool.

API имена суффиксов.

Суффикс может быть:

None, API (application programming interface, интерфейс прикладного программирования) без суффиксов не может быть вызван из кода пользователя в нормальном режиме, если по-другому не указано.

“I”, API, I-класса являются нерегулярными только в состояниях I-Locked или S-Locked.

“S”, API S-класса являются нерегулярными только с S-Locked состоянии.

Примеры: chThdCreateStatic(), chSemSignalI(), chIQGetTimeout().

Классы прерываний

В ChibiOS / RT существуют 3 класса логических прерываний:

  1. Регулярные прерывания. Источник маскируемых прерываний, прерывания не могут воздействовать на код ядра и таким образом появляется возможность вызывать API операционной системы изнутри обработчиков прерываний. Обработчики прерываний, принадлежащие к этому классу должны быть описаны с помощью определенных правил.
  2. Быстрые прерывания. Источник маскируемых прерываний с возможностью воздействовать на код ядра, таким образом имеют меньше скрытых состояний работы и менее подвержен дребезгу.
  3. Не маскируемые прерывания. Не маскируемые источники прерываний контролируются операционной системой не полностью и имеют наименьшее число скрытых состояний работы.

Состояние системы

При использовании СhibiOs/RT система может находиться в одном из следующих рабочих логических состояниях:

Init. B этом состоянии все маскируемые источники прерываний запрещены, не представляется возможным использовать различные системные API, за исключением chSysInit(), состояние системы возможно определить после физического сброса.

Normal. Все источники прерываний разрешены, доступны системные API, потоки выполняются.

Suspended. В этом состоянии разрешены быстрые, но не регулярные источники прерываний, не представляется возможным использовать различные системные API, исключением являются chSysDisable() или chSysEnable(), с их помощью можно изменить состояние системы.

Disabled. В этом состоянии, регулярные и быстрые источники прерываний запрещены, не представляется возможным использовать различные системные API, исключением являются chSysSuspend() или chSysEnable(), с помощью их можно изменить состояние системы.

Sleep. Архитектурно-зависимый режим пониженного энергопотребления. В этом состоянии находятся потоки в режиме ожидания. После возникновения прерывания восстанавливается нормальное состояние работы планировщика, при котором есть возможность перепланировать работу потоков или продолжить выполнение задач до входа в режим пониженного энергопотребления.

S-Locked. Ядро заблокировано и регулярные источники прерываний запрещены. Быстрые источники прерываний разрешены. API S-класса, и I-класса нерегулярные в этом состоянии.

I-Locked. Ядро заблокировано и регулярные источники прерываний запрещены. API I-класса нерегулярные в этом состоянии.

Обработка регулярных прерываний. Нет доступа к системным API, но можно переключиться на состояние I-Locked и использовать chSysLockFromIsr(), и вызывать различные I-Class API. Обработка прерываний может быть вытеснена на некоторых архитектурах, чтобы перейти к I-Locked состоянию до вызова системных API.

Обслуживание быстрых прерываний. Системные API недоступны.

Обслуживание не маскируемых прерываний.

Системные API недоступны.

Halted. Все источники прерываний запрещены, и система переходит в бесконечный цикл. Это состояние может быть достигнуто, если активируется режим отладки и обнаруживается ошибка, или после явного вызова функции chSysHalt().

Следующая диаграмма [рисунок 1] показывает возможные переходы между состояниями работы:

Рисунок 1. Состояние работы ChibiOs/RT

Обратите внимание, что SFI, Halted и SNMI состояния не были показаны, потому что они доступны для большинства состояний [рисунок 2].

Рисунок 2. SFI, Halted и SNMI

Планировщик

Планировщик — часть операционной системы, которая отвечает за параллельное выполнения задач, потоков, процессов. Планировщик выделяет потокам процессорное время, память, стек и прочие ресурсы. Планировщик может принудительно забирать управление у потока, либо ожидать пока поток отдаст управление планировщику [рисунок 3].

Рисунок 3. Многопоточность ChibiOs/RT

Выбор работы потока зависит от приоритета задачи. Приоритет задачи – важность задачи для планировщика, чем выше приоритет, тем быстрее планировщик ее начнет выполнять и тем меньше система потратит процессорного времени на выполнении задачи. ChibiOs/RT имеет следующие стандартные приоритеты: IDLEPRIO, LOWPRIO, NORMALPRIO, HIGHPRIO и ABSPRO.

В следующей статье мы разберем, как создавать проект для Keil, напишем программу для мигания светодиодов для STM32F429i – DISCO и разберем реализацию многозадачности в ChibiOs/RT.

ЖУРНАЛ “Электроника инфо”  №5 (119) май 2015, 18 стр – CHIBIOS/RT – операционная система для микроконтроллеров. Шуленков Р.А. 

ChibiOS/RT скачать бесплатную встроенную ОСРВ

Прислано вам: гдисирио, roccomarco

Скачать

Получить обновления

Поделиться

ChibiOS/RT — это бесплатная и эффективная ОСРВ, предназначенная для глубоко встраиваемых приложений. Он предлагает полный набор примитивов ядра и поддерживает множество архитектур: ARM7, Cortex-M0, Cortex-M3, Cortex-M4, PowerPC e200z, STM8, AVR, MSP430, ColdFire, H8S, x86.

Особенности

  • Небольшой объем памяти, высокая производительность, удобство переноски, чистота и удобство чтения.
  • Упреждающее ядро, 128 уровней приоритета, надежная статическая архитектура.
  • Поддержка ядра для семафоров, мьютексов, CondVars, сообщений, флагов событий, почтовых ящиков, виртуальных таймеров.
  • Абстракция IRQ, поддержка быстрых источников IRQ, отличных от ОС (модное словечко с нулевой задержкой).
  • Поддержка симуляторов ARM, ARM-CM0, ARM-CM3, ARM-CM4, PowerPC, STM8, MSP430, AVR, ColdFire, H8S, Linux/Win32/MacOS.
  • Компонент HAL делает приложения переносимыми между поддерживаемыми платформами.
  • Поддержка HAL для моделей драйверов устройств Port, Serial, ADC, CAN, DAC, EXT, GPT, I2C, I2S, ICU, MAC, MMC, PWM, RTC, SDC, SPI, UART, USB, WDG.
  • Поддержка стеков TCP/IP uIP и lwIP (демонстрация включена).
  • Поддержка библиотеки файловой системы FatFS (демонстрация включена).

Образцы проектов

Деятельность по проекту

Просмотреть все действия >

{{ this.obj.activity_extras. summary }}

{{/каждый}}

Категории

Разработка программного обеспечения, ядра операционных систем, встроенные системы

Лицензия

Лицензия Apache V2.0, Стандартная общественная лицензия GNU версии 3.0 (GPLv3)

Подпишитесь на бесплатную встроенную ОСРВ ChibiOS/RT

Веб-сайт бесплатной встроенной ОСРВ ChibiOS/RT

Получите полную информацию и контроль над своими задачами и проектами с помощью Wrike.

Облачное программное обеспечение для совместной работы, управления работой и проектами

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

Подробнее

Оцените этот проект

Войдите, чтобы оценить этот проект

Рейтинг пользователей

5,0 из 5 звезд

★★★★★

★★★★

★★★

★★

легкость 1 из 5 2 из 5 3 из 5 4 из 5 5 из 5 4 / 5

характеристики 1 из 5 2 из 5 3 из 5 4 из 5 5 из 5 5 / 5

дизайн 1 из 5 2 из 5 3 из 5 4 из 5 5 из 5 5 / 5

поддержка 1 из 5 2 из 5 3 из 5 4 из 5 5 из 5 4 / 5

Отфильтровать отзывы:

Все

  • Быстрый и поддерживает различные платформы. Автор работал над этим проектом много лет. Форум активный.

    2 пользователей считают этот отзыв полезным.

  • Лучшая RTOS, которую я когда-либо использовал.

    2 пользователей считают этот отзыв полезным.

  • Хорошо спроектированная ОСРВ с хорошим набором готовых к использованию драйверов.

    2 пользователей считают этот обзор полезным.

  • Первая RTOS, которую я попробовал, и у меня не было никакого желания искать другую. Я обнаружил, что он хорошо написан и, что важно, хорошо документирован.

    1 пользователь считает этот отзыв полезным.

  • Превосходный дизайн, элегантный и маневренный. Он хорошо структурирован.

    2 пользователей считают этот обзор полезным.

Читать больше отзывов >

Дополнительные сведения о проекте

Языки
Английский
Предполагаемая аудитория
Информационные технологии, наука/исследования, образование, телекоммуникационная отрасль, разработчики, автомобилестроение
Пользовательский интерфейс
Неинтерактивный (Daemon), консоль/терминал
Язык программирования
C++, ассемблер, C 2007-09-17

Сообщить о неприемлемом содержимом

Проект с открытым исходным кодом встроенной ОСРВ ChibiOS/RT на Open Hub

openhub. net Black Duck Software, Inc.

Черная утка с открытым хабом

  • Блог

Проекты

Проанализировано около 3 лет назад. на основе собранного кода почти 4 года назад.

Резюме проекта

ChibiOS/RT — это компактная и быстрая RTOS, предназначенная для встраиваемых приложений. Он предлагает потоки, мьютексы, семафоры, сообщения, события, таймеры, гибкий ввод-вывод с возможностью тайм-аута. В настоящее время поддерживаются ARM7, Cortex-M3, AVR, MSP430 и x86.

Метки

arm arm7 arm7tdmi сборка at91sam7 atmega avr avr-gcc c cortex cortex-m cortex-m0 cortexm0 cortex-m3 cortexm3 кросс-платформенный драйвер устройства драйверы эффективности электроника встроенная fast_rtos_on_earth прошивка gcc gpl gpl3 аппаратное ядро ​​облегченный lpc1000 lpc2000 микроконтроллер mcu msp430 операционная_система_ядра ОС вытесняющая в реальном времени планировщик ОСРВ в реальном времени software_development stm32 stm8 stm8l stm8s

В двух словах, встроенная ОСРВ ChibiOS/RT.
..
Краткий справочник

Ссылки на проекты:

Домашняя страница
Документация ( 3 ссылки )
Скачать

Код местоположения:

Добавьте код местоположения!

Похожие проекты:

Руководители:

Джованни Ди Сирио

Лицензии

Доступна коммерческая лицензия

Разрешено

Запрещено

Обязательно

Эти сведения приведены только для информации. Никакая информация здесь не является юридической консультацией и не должна использоваться как таковая.

Стандартная общественная лицензия GNU v3.0 или выше
Разрешено

Коммерческое использование