![]() |
ОСРВ MULTEX-ARM
Руководство программиста
|
Данное руководство содержит описания основных концепций, заложенных в основу Операционной Системы Реального Времени 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 позволяют пользователю обеспечить сравнительно легкие и быстрые пути создания и отладки широкого спектра приложений в таких областях, как, робототехника, медицина, управление сложными станками с ЧПУ, в системах технического зрения, системах дистанционного управления в реальном времени и передачи видео и аудио информации.
Ниже приведены версии и дата выпуска актуальных для текущей версии библиотек с разделением на наборы: