Встраиваемая операционная система для Arduino, небольшая, простая в использовании и может быть добавлена к любому проекту из диспетчера библиотек Arduino IDE – это все про HeliOS.

HeliOS была написана для радиолюбителей, энтузиастов и исследователей, которые хотят больше функциональности, чем то, что предлагают существующие планировщики задач, но хотят избежать размера и сложности операционной системы реального времени RTOS.
HeliOS имеет только 21 вызов функции и реализует широкий спектр функций, включая совместную многозадачность, многозадачность, управляемую событиями, уведомление о задачах и обмен сообщениями, таймеры и управляемую память. HeliOS не только проста в использовании, но и доступна через диспетчер библиотек Arduino IDE или из GitHub в виде ZIP-файла. В любом случае HeliOS совместима со спецификациями диспетчера библиотек Arduino 1.5 (версия 2.2), поэтому начать работу с этой операционной системой совсем несложно.
Чтобы установить HeliOS в вашу Arduino IDE, вы можете использовать Диспетчер библиотек (Library Manager). Откройте IDE и щелкните меню Скетч (Sketch), а затем Включить библиотеку – Управление библиотеками (Include Library – Manage Libraries).

Затем откроется Диспетчер библиотек, и вы найдете список библиотек, которые уже установлены или готовы к установке. Чтобы установить HeliOS, найдите «HeliOS», прокрутите список, чтобы найти этот раздел, и щелкните по нему.

Вы должны увидеть в списке целевую версию HeliOS (версия 0.2.3 или выше). Наконец, нажмите «Установить» (Install) и дождитесь, пока Arduino IDE установит HeliOS. Загрузка может занять некоторое время в зависимости от скорости вашего подключения. После его завершения рядом с библиотекой HeliOS должен появиться тег Installed. Вы можете закрыть Диспетчер библиотек.
Теперь вы можете найти HeliOS доступным в меню Скетч – Подключить библиотеку (Sketch – Include Library). Данная библиотека поставляется с примерами, в том числе с популярным примером мигания светодиодом Blink, который поясняет принцип работы с библиотекой.
#include <HeliOS_Arduino.h>
int ledState = 0;
void taskBlink(int id_) {
if(ledState) {
digitalWrite(LED_BUILTIN, LOW);
ledState = 0;
} else {
digitalWrite(LED_BUILTIN, HIGH);
ledState = 1;
}
}
void setup() {
xHeliOSSetup();
pinMode(LED_BUILTIN, OUTPUT);
int id = xTaskAdd("TASKBLINK", &taskBlink);
xTaskWait(id);
xTaskSetTimer(id, 1000000);
}
void loop() {
xHeliOSLoop();
}
© digitrode.ru