Операционные системы для AVR

Программируя микроконтроллеры AVR рано или поздно можно столкнуться со следующей проблемой — алгоритм становится слишком сложным и дальнейшее развитие программы оказывается довольно трудной задачей. Начинается путаница в коде. Для случаев, когда микроконтроллер исполняет множество параллельных задач необходима определенная тактика действий при организации структуры кода. Одним из выходов из данной трудности является использование операционных систем.

Рассмотрим некоторые основные возможности, предоставляющие применение операционных систем при программировании микроконтроллеров:

Многозадачность

Одной из особенностью операционных систем является обслуживание выполнения нескольких задач. При этом на операционную систему возлагается задача управления переключениями между задачами (процессами). Этот процесс называется диспетчеризацией. Для того, чтобы выполнение задач происходило равномерно и сбалансировано операционная система выполняет важную роль — планирование выполнения задач. Управляя параметрами планирования можно менять правила распределения ресурсов между задачами.

Многозадачность может быть вытесняющей и невытесняющей. При невытесняющей многозадачности процессорные ресурсы выделяются сразу нескольким задачам, но выполняется при этом только одна задача. Остальные задачи являются фоновыми и ожидают выполнения. Для переключения к фоновым задачам требуется их активизация.

Режим реального времени операционным системам обеспечивает поддержка вытесняющей многозадачности, когда операционная система самостоятельно способна переключать выполнение с одной задачи на другую в зависимости от различных видов аппаратных событий, прерываний или истечения квантов времени. Переключение происходит по команде операционной системы и не зависит от «пожелания» прерываемой задачи. Прерывание может происходить в произвольных промежутках исполняемого кода.

Виртуальные таймеры

Поддержка в операционных системах виртуальных таймеров позволяет выполнять задачи с определенным промежутком времени без задействования аппаратных таймеров. Преимущество заключается в том, что таймеров может быть произвольное количество, в то время как количество аппаратных таймеров ограничено.

Семафоры

Семафор является средством для синхронизации выполняемых задач в плане использования общих ресурсов и обеспечивает поочерёдный доступ к критическому ресурсу (важному ресурсу, для которого невозможен одновременный доступ).

HAL поддержка

Программы, работающие под управлением операционной системы не могут использовать прямой доступ к аппаратуре. Доступ осуществляется только через ядро операционной системы. Для этого операционная система снабжена уровнем аппаратных абстракций (Hardware Abstraction Layer, HAL). Тем не менее, в зависимости от типа микроконтроллера каждая отдельная операционная система может поддерживать не все типы аппаратного обеспечения, на что следует обращать внимание.
Для микроконтроллеров AVR возможно применение следующих видов операционных систем:

Краткий обзор операционных систем AVR

FreeRTOS

Многозадачная операционная система реального времени (ОСРВ) для встраиваемых систем.  Мини-ядро операционной системы поддерживает задачи и подпрограммы. Дистрибутив предоставляет ядро и два демо для AVR, демонстрирующие использование задач и подпрограмм. Подпрограммы представляют собой легковесные кооперируемые задачи, задействующие очень мало памяти.

  • Сайт: http://www.freertos.org/
  • Лицензия: модифицированная лицензия GPL;
  • Поддерживаемые микроконтроллеры: AVR, MegaAVR, TinyAVR

AvrX

Компактный, с возможностью управления приоритетами и прерываниями переключателем задач.
AvrX написана на ассемблере, и совместима с GNU GCC и IAR компиляторами. AvrX со всеми опциями занимает меньше чем 1500 байт на FLASH, что является сравнительно мало для подобных систем. AvrX подходит для любого устройства AVR у которого объем памяти SRAM составляет 512 или более байт. Количество поддерживаемых задач ограничено объемом доступной памяти SRAM и с объемом в 512 байт в состоянии поддерживать выполняющихся одновременно 3-5 задачи.
Есть около 36 инструкций API для управления задачами, таймером, семафорами и очередью сообщений. Поставляемый монитор отладки поддерживает элементарные одношаговые операции на основе задач (т.е. на основе задачи, можно выполнять приостановку, выполнение шага или устанавливать точку останова).
AvrX очень быстрый: выполняется примерно 240 циклов полного обхода при управляемых AvrX прерываниях и примерно до 50 циклов при неуправляемых.

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. Может применяться для отладки машинно-независимых частей разрабатываемых систем: алгоритмов обработки данных, диспетчеров памяти, сетевых протоколов.
Операционная система uOS может применяться в промышленных и коммуникационных системах с самым широким диапазоном ресурсов, от 8-битных микроконтроллеров с 16 килобайтами ПЗУ и 2 килобайтами ОЗУ, до 32-битных микропроцессоров. Система поддерживает неограниченное количество задач, приоритетов и мьютексов.

scmRTOS

Многозадачная операционная система реального времени для встраиваемых систем. Операционная система ScmRTOS способна исполняться на микроконтроллерах с очень малым объемом памяти RAM — от 512 байт. Написана на языке C++ и распространяется с открытыми исходными кодами.
Список поддерживаемых платформ:
  • 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 ;

 

Для самых любознательных есть замечательные  статьи

по операционной системе для микроконтроллеров FreeRTOS в исполнении Андрея Курница.

Kurniz FreeRTOS

По материалам: блогс-ит.ру

Метки: , , , , , . Закладка Постоянная ссылка.

Комментарии запрещены.