RTOS ChibiOS/RT – операционная система для микроконтроллеров.
ChibiOs/RT – операционная система реального времени (ОСРВ, RTOS – real-time operating system). Реальное время в операционных системах — способность операционной системы обеспечить требуемый уровень сервиса в определенный промежуток времени. Операционная система, реагирующая на событие за определенный, заданный промежуток времени. ChibiOs/RT предназначена для встраивания приложений, работающих в реальном времени. Эта ОСРВ отличается высокой мобильностью, компактными размерами и, главным образом имеет свою собственную уникальную архитектуру, подходит для быстрого и эффективного переключения контекста.
Основные функции ChibiOs/RT
Функционал применения ChibiOs/RT:
Области применения ChibiOs/RT:
Производительность ChibiOs/RT [Таблица 1].
Таблица 1. Синтетические тесты. Версия ядра 2.4 ChibiOs/RT
Платформа-Частота -Компилятор | Переключение контекста | Размера ядра, байт |
ARM7(ARM)/LPC2148-48-GCC4.6.2 | 2.03µS | 9224 |
ARM7(THUMB)/LPC2148-48-GCC4.6.2 | 2.43µS | 6052 |
ARMCM0/LPC1114-48-GCC4.6.2 | 2.60µS | 5500 |
ARMCM0/LPC1343-72-GCC4.6.2 | 1.02µS | 6172 |
ARMCM3/STM32F1xx-72-GCC4.6.2 | 1.03µS | 6172 |
ARMCM3/STM32F4xx-168-GCC4.6.2 | 0.40µS | 6172 |
MSP430F1611-8-GCC3.2.3 | 16.93µS | 6108 |
AVR/ATMega128-16-GCC4.3.0 | 11.24µS | N/A ~7500 |
STM8L152-16-Cosmic | N/A | N/A ~6500 |
STM8L152-16-Raisonance | 9. 03µS | N/A ~7000 |
STM8S105-16-Cosmic | N/A | N/A ~6500 |
STM8S105-16-Raisonance | 9.03µS | N/A ~7000 |
PA/SPC563M64-80-GCC4.4.1 | 1.11µS | 11944 |
Ядро ChibiOs/RT было перенесено на множество различных архитектур и для различных компиляторов, однако текущая стратегия заключается в поддержке меньшего числа конкретных микроконтроллеров, и для текущего набора официально поддерживаемых микроконтроллеров обеспечить полноценный HAL. HAL — слой абстрагирования, реализованный на уроне удобных пользовательский функций, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, работающим с периферией микроконтроллера. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части, алгоритма работы программы, таким образом, чтобы большая часть кода, работающая в режиме ядра, не нуждалась в изменении при запуске ОСРВ на различных платформах микроконтроллеров.
ChibiOs/RT предлагает отличную поддержку для нескольких популярных семейств микроконтроллеров. Для семейств, которые не входят в официальный дистрибутив существует сообщество и поддержка от авторов сторонних семейств микроконтроллеров.
Официально поддерживаемые платформы
Следующий список включает в себя архитектуры и платформы поддерживаемые ChibiOs/RT [таблица 2]. Следующие платформы тщательно протестированы и стабильно работаю со своим набором инструментария. Для каждой архитектуры представлен список поддерживаемых семейств микроконтроллеров.
Таблица 2. Официально поддерживаемые платформы ChibiOs/RT
Ядро архитектуры | Компилятор | Поддерживаемые платформы |
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/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 класса логических прерываний:
Состояние системы
При использовании С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 недоступны.
Обслуживание не маскируемых прерываний.
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 – операционная система для микроконтроллеров. Шуленков Р.А.
Прислано вам: гдисирио, roccomarco
Скачать
Получить обновления
Поделиться
ChibiOS/RT — это бесплатная и эффективная ОСРВ, предназначенная для глубоко встраиваемых приложений. Он предлагает полный набор примитивов ядра и поддерживает множество архитектур: ARM7, Cortex-M0, Cortex-M3, Cortex-M4, PowerPC e200z, STM8, AVR, MSP430, ColdFire, H8S, x86.
Просмотреть все действия >
{{ this.obj.activity_extras. summary }}
{{/каждый}}
Веб-сайт бесплатной встроенной ОСРВ ChibiOS/RT
Получите полную информацию и контроль над своими задачами и проектами с помощью Wrike.
Облачное программное обеспечение для совместной работы, управления работой и проектами
Wrike предлагает функции мирового класса, которые позволяют многофункциональным, распределенным или растущим командам развивать свои проекты от этапа начального запроса до отслеживания хода работы и отчетность о результатах.
Подробнее
Оцените этот проект
Войдите, чтобы оценить этот проект
★★★★★
★★★★
★★★
★★
★
легкость 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 пользователей считают этот обзор полезным.
Сообщить о неприемлемом содержимом
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
Ссылки на проекты:
Домашняя страница
Документация ( 3 ссылки )
Скачать
Код местоположения:
Добавьте код местоположения!
Похожие проекты:
Руководители:
Джованни Ди Сирио
Эти сведения приведены только для информации. Никакая информация здесь не является юридической консультацией и не должна использоваться как таковая.
Коммерческое использование
Изменить
распространять
Разместить гарантию
Используйте патентные формулы
Сублицензия
нести ответственность
Распространить оригинал
Раскрыть источник
Включить авторские права
Изменения состояния
Включить лицензию
Включить инструкции по установке
Эти сведения приведены только для информации.