ОСРВ MULTEX-ARM
Полное описание
Загрузка...
Поиск...
Не найдено
Введение

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

Версия
5.10

Общие сведения

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

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

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

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

Аппаратной платформой для ОСРВ MULTEX-ARM являются процессора китайской компании Allwinner:

  • A20 — мультимедийный процессор используемый в телефонах, планшетах и видеорегистраторах. Эту модель вы могли встретить в популярных платах Cubieboard и Banana Pi;
  • A40i — более новая модель, пришедшая на смену A20. Используется в китайском автопроме. Есть индустриальное исполнение для работы в температурном диапазоне от -40 до +85 ℃;
  • H3 — простой дешёвый процессор. Используется в платах Orange Pi;
  • V3S — простой процессор со встроенной DDR памятью. Используется в простых видеорегистраторах. На этом процессоре собрана минималистичная плата Lichee Pi Zero.

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

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

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

MULTEX-ARM поставляется в виде набора библиотек. Часть из них распространяется бесплатно и выложена в открытом доступе на сайте set-code.ru. Остальные библиотеки предоставляются по запросу на почту mail@set-code.ru. Полный перечень известных библиотек, совместимых с ОСРВ Multex-ARM доступен для просмотра в базе знаний в формате pdf. Ссылка на документ: https://set-code.ru/база-знаний/полный-перечень-библиотек-осрв-multex-arm/

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

  • 5.10 — Обновление содержит ряд небольших изменений и доработок, которые позволили включить в дополнительный набор библиотек поддержку Modbus/TCP и дополнить список поддерживаемых видео сенсоров. Основные изменения:
    • Улучшена работа интерфейсов EMAC, SPI, I2C, UART.
    • Оптимизирован протокол TCP.
    • Добавлены режимы видео с переключаемым FPS (для A20).
    • Добавлена возможность подключения CSI (DVP) по стандарту BT.1120 (16 bit).
    • Улучшена работа со вторым ядром процессора.
    • Обновление библиотеки математики (небольшие исправления и документация), добавлена возможность использовать переменную errno в нескольких задачах / потоках.
    • В Shell добавлена возможности регистрации команд пользователя shellRegisterFunc().
    • Добавлены тесты функций ядра и математики.
    • Значительно переработана библиотека USB (поддержка специализированных клавиатур и флеш дисков).
    • Исправлен расчёт альфа-канала в программном выводе графики.
    • В систему сборки добавлена утилита memFrag (см. Диаграммы распределения динамической памяти).
  • 5.09 — В обновлении добавлена возможность использования механизмов межзадачного взаимодействия в прерываниях. Список основных изменений:
    • Перевод обработчиков прерываний на семафоры и очереди.
    • Поддержка второго ядра для процессора A20 (см. Многопоточность).
    • Поддержка Image Signal Processor для процессора A20 (isp.h).
    • В базовый набор библиотек добавлена поддержка USB.
    • Улучшена работа интерфейсов CSI, I2C.
    • Значительно улучшена работа сетевых протоколов UDP/TCP/FTP.
    • Модернизация API библиотеки шрифтов.
    • Улучшена работа библиотек с камерами OV2710 и ASX340.
    • В систему сборки добавлено Удалённое обновление файлов по FTP.
    • Добавлена поддержка комментариев в конфигурационных файлах (inifiles.h).
  • 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 — Первая публикация документации.