uMulti
Кооперативная многозадачность для AVR с минимальными затратами памяти и встроенными таймерами для планирования задач
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:541e786b94c63f030a4407003635ddd4799e4773caa8117b49e92e5448e38523uMulti-0.1.1-541e786b.zipОписание
Простая операционная система для AVR-микроконтроллеров, основанная на кооперативной многозадачности. Переключение контекста между потоками происходит детерминированно, без нужды в синхронизации и отключении прерываний. Занимает минимум памяти: всего около 500 байт флэша в базовой конфигурации, по умолчанию 20 байт оперативной памяти. Каждый поток требует примерно 20 байт на стеке, и память активно компактируется во время переключений, так что весь свободный объём доступен всем потокам одновременно. Есть встроенная система таймеров для планирования задач на миллисекунды или секунды вперёд. Основное ограничение: переключение контекста работает медленно, особенно если в стеке потока много данных — для критичных по скорости участков лучше использовать главный поток, который никогда не перемещается в памяти.