Операционные системы для AVR
Программируя микроконтроллеры AVR рано или поздно можно столкнуться со следующей проблемой — алгоритм становится слишком сложным и дальнейшее развитие программы оказывается довольно трудной задачей. Начинается путаница в коде. Для случаев, когда микроконтроллер исполняет множество параллельных задач необходима определенная тактика действий при организации структуры кода. Одним из выходов из данной трудности является использование операционных систем.
Оглавление
Многозадачность
Одной из особенностью операционных систем является обслуживание выполнения нескольких задач. При этом на операционную систему возлагается задача управления переключениями между задачами (процессами). Этот процесс называется диспетчеризацией. Для того, чтобы выполнение задач происходило равномерно и сбалансировано операционная система выполняет важную роль — планирование выполнения задач. Управляя параметрами планирования можно менять правила распределения ресурсов между задачами.
Многозадачность может быть вытесняющей и невытесняющей. При невытесняющей многозадачности процессорные ресурсы выделяются сразу нескольким задачам, но выполняется при этом только одна задача. Остальные задачи являются фоновыми и ожидают выполнения. Для переключения к фоновым задачам требуется их активизация.
Виртуальные таймеры
Семафоры
Семафор является средством для синхронизации выполняемых задач в плане использования общих ресурсов и обеспечивает поочерёдный доступ к критическому ресурсу (важному ресурсу, для которого невозможен одновременный доступ).
HAL поддержка
Краткий обзор операционных систем AVR
FreeRTOS
Многозадачная операционная система реального времени (ОСРВ) для встраиваемых систем. Мини-ядро операционной системы поддерживает задачи и подпрограммы. Дистрибутив предоставляет ядро и два демо для AVR, демонстрирующие использование задач и подпрограмм. Подпрограммы представляют собой легковесные кооперируемые задачи, задействующие очень мало памяти.
- Сайт: http://www.freertos.org/
- Лицензия: модифицированная лицензия GPL;
- Поддерживаемые микроконтроллеры: AVR, MegaAVR, TinyAVR
AvrX
uOS
Поддерживаемые архитектуры:
- Atmel AVR.
- Texas Instruments MSP430.
- ARM: Samsung S3C4530A, Atmel AT91SAM7, AT91SAM9. Режимы ARM и Thumb.
- MIPS32: Элвис МС-24.
- Intel i386: стандартные PC-совместимые компьютеры c шиной PCI и видеоадаптером VESA. Используется загрузчик Grub 0.97.
- Linux 386, в режиме виртуальной машины, с поддержкой TCP/IP. Может применяться для отладки машинно-независимых частей разрабатываемых систем: алгоритмов обработки данных, диспетчеров памяти, сетевых протоколов.
- Лицензия: GPL с дополнением (позволяет использовать в коммерческих проектах);
- Сайт: http://code.google.com/p/uos-embedded/wiki/about_ru
- Документация: http://code.google.com/p/uos-embedded/wiki/docs_ru
- Сайт: http://scmrtos.sourceforge.net/ScmRTOS
- Лицензия: MIT License;
- MSP430 (Texas Instruments);
- AVR (Atmel);
- Blackfin (Analog Devices);
- ARM7:
- AT91SAM7;
- LPC2xxx;
- ADuC70xx;
- Cortex-M3:
- STM32F1XX;
- LPC17XX;
- STM8 (STMicroelectronics).
ChibiOS/RT
- Сайт: http://www.chibios.org/
- Лицензия: модифицированная лицензия GPLv3 ;
Добавить комментарий