leOS - многозадачное Ядро для Arduino

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Ответить
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

leOS - многозадачное Ядро для Arduino

Сообщение Mr.Kubikus »

Леонардо Милиани, разработчик из Италии, выложил в открытый доступ исходники маленького многозадачного ядра для Arduino - leOS (little embedded operating system). В своем блоге он пишет:
To be honest, it should more correct to say that leOS is actually something that is halfway a simple prototype of an real-time operating system (RTOS) and a scheduler. [...]

leOS can run simple tasks that don’t require excessive CPU time but it can be useful in all of those situations where the user wants to let a task run itself out of the main loop.
leOS обеспечивает диспетчеризацию выполнения пользовательских функций согласно заданным временным интервалам. Для этого leOS использует аппаратный таймер 2 для отсчета интервалов между вызовами функций, поэтому пользователь теряет доступ к функциям ШИМ на пинах D3 и D11.

Для использования leOS необходимо подключить библиотеку в начале вашего скетча и создать экземпляр класса:

#include "leOS.h"
leOS myOS;

Подключение пользовательской функции к планировщику выполняется с помощью метода addTask():

void setup() {
myOS.begin();
myOS.addTask(myFunction, interval);
....
}

В ядре используется 64-битный счетчик, так что переполнение планировщика произойдет только через 584 942 417 лет!

Больше информации и исходные коды для leOS можно найти здесь.
С уважением, Григорий
GitHub FB ВК
Ответить