ОСРВ MULTEX-ARM
Руководство программиста
Общее описание

Данное руководство содержит описания основных концепций, заложенных в основу Операционной Системы Реального Времени MULTEX-ARM, а так же полный список вызовов функций.

Версия
5.05

Операционная система жесткого реального времени MULTEX-ARM

Операционная система жесткого реального времени (ОСРВ) MULTEX-ARM предназначена для встраиваемых применений. Основное ее назначение — предоставление пользователю необходимого и достаточного набора функций для проектирования, разработки и функционирования систем реального времени на конкретном аппаратном оборудовании. Особенностью MULTEX-ARM является то, что весь пользовательский проект собирается на этапе компиляции на инструментальной машине в единый загружаемый образ, который содержит как разрабатываемый пользователем программный код, так и все необходимые для него библиотечные процедуры.

MULTEX-ARM представляет собой набор библиотек, обеспечивающих эффективную многозадачность, а также набор драйверов, обеспечивающих взаимодействие пользовательского программного обеспечения с аппаратурой. Она предназначена для использования на процессорах китайской фирмы Allwinner, таких как: A20, A40i, H3, V3S. При этом пользовательское программное обеспечение пишется на языке Си. Процедуры библиотеки ядра MULTEX-ARM, написанные на языках Си и Ассемблер, обеспечивают эффективную вытесняющую многозадачность с заданием приоритетов для каждой задачи. При этом планировщик задач может работать как в приоритетном режиме, так и в режиме карусельного планирования. Для обеспечения многозадачности и межзадачного взаимодействия библиотека ядра предоставляет пользователю различные семафоры и очереди сообщений. MULTEX-ARM использует плоскую модель памяти, причем любой задаче полностью доступно все адресное пространство процессора и все глобальные переменные проекта. Любая Си-процедура может быть запущена, как отдельная задача.

Жесткое реальное время подразумевает гарантированную реакцию на внешние события за фиксированный интервал времени. Для MULTEX-ARM это время сравнимо с временем вызова Си-процедуры. Внешними событиями в MULTEX-ARM выступают прерывания от системного таймера, от устройств ввода/вывода, от внешних сигналов. При этом возможна настройка приоритетов прерываний и выполнение вложенных прерываний, что позволяет увеличить точность генерации внешних сигналов до десятков наносекунд.

Плоская модель памяти — вся память в MULTEX-ARM имеет физические адреса, совпадающие с виртуальными. При этом каждой задаче в многозадачной среде доступно все адресное пространство процессора. Все глобальные переменные и все глобальные имена процедур доступны всем задачам. Это облегчает межзадачное взаимодействие. Кроме того, для обеспечения бесконфликтного взаимодействия задач друг с другом имеются такие системные механизмы, как семафоры и очереди сообщений. Процедуры организации механизмов многозадачности, а также функции создания и управления семафорами и очередями сообщений объединены в системные библиотеки. Пользовательское ПО линкуется совместно с системными библиотеками в монолитный образ, который и исполняется на целевой платформе в соответствии с программой пользователя.

MULTEX-ARM предоставляет пользователю широкие возможности по отладке проекта. С помощью командного интерпретатора Shell пользователь может вызывать любую глобальную процедуру, набирая ее вызов в синтаксисе языка Си. Кроме того, можно просматривать, либо изменять значения любых глобальных переменных по ходу выполнения программы. Возможно также просматривать, либо модифицировать любые области памяти вычислителя. Это можно делать с инструментальной машины, подключенного к целевой платформе с помощью канала DEBUG-UART, либо по каналу Ethernet. Кроме этого, пользователь получает возможность просматривать/редактировать любые зоны памяти, а также получать информацию о состоянии задач в многозадачной среде, запускать в ручную новые задачи, менять приоритеты любой запущенной задачи и удалять любые задачи. Пользователь также может с помощью Shell получать информацию о состоянии системы ввода/вывода, переназначать стандартный вывод на другие устройства непосредственно во время работы.

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

Таким образом, перечисленные особенности MULTEX-ARM позволяют пользователю обеспечить сравнительно легкие и быстрые пути создания и отладки широкого спектра приложений в таких областях, как, робототехника, медицина, управление сложными станками с ЧПУ, в системах технического зрения, системах дистанционного управления в реальном времени и передачи видео и аудио информации.

См. также
Базовые определения см. в файле multex.h.

История версий

  • 5.05 — Основные изменения:
    • Обновление драйверов с поддержкой процессора Allwinner V3s.
    • Поддержка вложенных прерываний.
    • Поддержка True Type шрифтов во всех библиотеках графики.
  • 5.04 — Первая публикация документации.