ОСРВ MULTEX-ARM
Полное описание
Введение

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

Версия
5.07

Операционная система жесткого реального времени 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.

Наборы библиотек

Ниже приведены версии и дата выпуска актуальных для текущей версии библиотек с разделением на наборы:

  • Базовый набор библиотек:
    • armkernel ver.5.07.1879 от 2024-01-30 16:49:38
    • a64 ver.1.02.0004 от 2023-12-01 14:45:59
    • sunxi ver.1.10.2029 от 2024-01-26 17:03:22
    • enet ver.1.05.0252 от 2023-12-01 12:27:03
    • tcp ver.1.06.0202 от 2023-11-20 21:52:33
    • sata ver.1.03.0097 от 2024-01-26 17:27:03
  • Мультимедиа А20:
    • a20graph ver.2.04.0712 от 2024-01-26 17:09:50
    • asx340 ver.1.03.0038 от 2023-12-01 12:09:51
    • avi ver.1.02.0053 от 2023-11-20 20:20:09
    • cedrus ver.1.02.0131 от 2024-01-26 17:17:04
    • csi ver.1.02.0172 от 2023-12-01 12:20:51
    • mpeg4decode ver.1.02.0087 от 2023-12-14 10:39:10
    • tvd ver.1.01.0031 от 2023-12-01 12:48:59
  • Мультимедиа V3s, H3:
    • de2 ver.1.04.0948 от 2023-11-20 21:05:23
    • softgraph ver.1.06.1187 от 2023-11-20 21:31:55
  • Дополнение к мультимедийным библиотекам:
    • font ver.1.04.0093 от 2023-11-20 21:19:51
    • png ver.1.02.0145 от 2023-12-01 12:39:53
    • z ver.1.02.0027 от 2023-12-01 12:59:35

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

  • 5.07 — Загрузка A20 с разных дисков. Исправления и дополнения в библиотеках:
    • Дополнена система монтирования томов дисков.
    • Оптимизирована работы модуля LVDS.
    • Увеличена штатная частота работы процессора.
    • Оптимизирована работа аппаратного кодера Cedrus.
    • Переработан встроенный текстовый редактор Edit.
    • Оптимизирована система сборки проектов (многопоточная сборка).
    • Дополнена справка в консоли Shell.
    • Исправлена работы модулей SPI и UART для A20.
    • Исправлена работа с дисками SATA, библиотека lib_sata добавлена в базовый набор.
  • 5.06 — Основой обновления стали новые библиотеки работы с графикой.
    • Изменения в графических библиотеках:
      • Добавлена библиотека lib_cedrus – поддержка аппаратного кодера / декодера Cedrus.
      • Добавлена библиотека lib_csi – поддержка аппаратного модуля подключения видео камер по параллельному интерфейсу BT656.
      • Добавлена библиотека работы с аппаратным TV декодером lib_tvd с поддержкой PAL и NTSC.
      • Добавлена библиотека lib_asx340 – поддержка камер на базе матрицы ASX340AT.
      • Повышена стабильность работы графической библиотеки процессора A20lib_a20graph.
      • Повышена стабильность работы графической библиотеки процессоров V3s и H3lib_softgraph. Добавлена возможность вывода окружностей с полупрозрачностью.
    • Изменения в базовом наборе библиотек:
      • Повышена стабильность работы контроллера сети EMAC.
      • gpio.h - добавлена работа с внешними прерываниями.
      • i2c.h - устранена ошибка при регистровом чтении для A20.
      • Добавлена тестовая функция оценки работы процессора cpuUsage().
      • Добавлена поддержка UTF-8 в консоли.
      • Дополнена документация.
  • 5.05 — Основные изменения:
    • Обновление драйверов с поддержкой процессора Allwinner V3s.
    • Поддержка вложенных прерываний.
    • Поддержка True Type шрифтов во всех библиотеках графики.
  • 5.04 — Первая публикация документации.