Входит в Реестр Российского Программного Обеспечения.
Операционная система жесткого реального времени MULTEX-ARM
Операционная система жесткого реального времени MULTEX-ARM предназначена для встраиваемых применений. Основное ее назначение — предоставление пользователю необходимого и достаточного набора функций для проектирования, разработки и функционирования систем реального времени на конкретном аппаратном
оборудовании. Особенностью ОСРВ MULTEX-ARM является то, что весь пользовательский проект собирается на этапе компиляции на инструментальном компьютере в единый загружаемый образ, который содержит как разрабатываемый пользователем программный код, так и все необходимые для него библиотечные процедуры.
Цена ОСРВ MULTEX-ARM
- Базовый набор библиотек операционной системы жесткого реального времени MULTEX-ARM распространяется бесплатно.
- Стоимость полного набора библиотек предоставляется по запросу на почту mail@set-code.ru.
MULTEX-ARM представляет собой набор библиотек, обеспечивающих эффективную многозадачность, а также набор драйверов, обеспечивающих взаимодействие пользовательского программного обеспечения с аппаратурой. ОСРВ MULTEX-ARM предназначена для использования на процессорах китайской фирмы Allwinner, таких как: A20, A40i, H3, V3S. При этом пользовательское программное обеспечение пишется на языке Си. Процедуры библиотеки ядра ОСРВ MULTEX-ARM, написанные на языках Си и Ассемблер, обеспечивают эффективную вытесняющую многозадачность с заданием приоритетов для каждой задачи. При этом планировщик задач может работать как в приоритетном режиме, так и в режиме карусельного планирования. Для обеспечения многозадачности и межзадачного взаимодействия библиотека ядра предоставляет пользователю различные семафоры и очереди сообщений. MULTEX-ARM использует плоскую модель памяти, причем любой задаче полностью доступно все адресное пространство процессора и все глобальные переменные проекта. Любая Си-процедура может быть запущена, как отдельная задача.
Жесткое реальное время подразумевает гарантированную реакцию на внешние события за фиксированный интервал времени. Для MULTEX-ARM это время сравнимо с временем вызова Си-процедуры. Внешними событиями в MULTEX-ARM выступают прерывания от системного таймера, от устройств ввода/вывода, от внешних сигналов. При этом возможна настройка приоритетов прерываний и выполнение вложенных прерываний, что позволяет увеличить точность генерации внешних сигналов до десятков наносекунд.
MULTEX-ARM предоставляет пользователю широкие возможности по отладке проекта. С помощью командного интерпретатора Shell пользователь может вызывать любую глобальную процедуру, набирая ее вызов в синтаксисе языка Си. Кроме того, можно просматривать, либо изменять значения любых глобальных переменных по ходу выполнения программы. Возможно также просматривать, либо модифицировать любые области памяти вычислителя. Это можно делать с инструментального компьютера, подключенного к целевому вычислителю с помощью канала RS232C, либо по каналу Ethernet.
ОСРВ MULTEX-ARM может с успехом применяться в таких областях, как, например, робототехника, медицина, управление сложными станками с ЧПУ, в системах технического зрения, системах дистанционного управления и передачи видео и аудио информации.
Документация
ОСРВ MULTEX-ARM ver.5.07
Полное описание
Документ содержит описания концепций, заложенных в основу Операционной Системы Реального Времени MULTEX-ARM, а также полный список вызовов функций.
Список изменений:
- Дополнена система монтирования томов дисков.
- Оптимизирована работы модуля LVDS.
- Увеличена штатная частота работы процессора.
- Оптимизирована работа аппаратного кодера Cedrus.
- Переработан встроенный текстовый редактор Edit.
- Оптимизирована система сборки проектов (многопоточная сборка).
- Дополнена справка в консоли Shell.
- Исправлена работы модулей SPI и UART для A20.
- Исправлена работа с дисками SATA, библиотека lib_sata добавлена в базовый набор.
Документацию на предыдущие версии MULTEX-ARM можно посмотреть в нашем архиве. Перейти в архив можно по ссылке ниже.
Новости проекта
Файлы для скачивания
ОСРВ MULTEX-ARM ver.5.07
Дата публикации 30.01.2024
Базовый набор библиотек
Базовый набор библиотек ОСРВ MULTEX-ARM распространяется бесплатно в виде скомпилированных бинарных файлов, набора заголовочных файлов и утилит для сборки проекта. Базовый набор может быть использован в проектах пользователя без каких-либо ограничений. В базовый набор входят библиотеки ядра ОС и драйвера простых интерфейсов (UART, I2C, SPI, Ethernet). Библиотеки мультимедиа используемые для кодирования, декодирования и воспроизведения видео и изображений поставляются отдельно.
Перед скачиванием библиотек следует ознакомиться с условиями лицензионного соглашения.
Предыдущие версии MULTEX-ARM можно скачать в нашем архиве. Перейти в архив можно по ссылке ниже.
Сборка проекта пользователя с использованием библиотек осуществляется на инструментальной машине под управлением ОС Linux (Debian, Ubuntu) либо под Windows с использованием виртуальной машины WSL. Процесс сборки описан в документации. Перед первым запуском сборки под Linux следует изменить права доступа (разрешить выполнение) для всех утилит из каталога /multex-arm/bin.
Для запуска собранного проекта на целевой машине проект следует скопировать на uSD диск с заранее размещённым загрузчиком. Скачать загрузчики для поддерживаемых процессоров можно в соответствующем разделе.
Загрузчики ОСРВ MULTEX-ARM
Загрузчик операционной системы — микропрограмма, обеспечивающая загрузку операционной системы непосредственно после включения компьютера. Целевой ARM процессор производит чтение первого сектора жёсткого диска (uSD), в котором располагается загрузчик и передаёт управление считанному коду. Задачей загрузчика является минимальная настройка регистров процессора и передача управления операционной системе.
Для загрузки ОСРВ MULTEX-ARM используются загрузчики на базе проекта u-boot. Каждый из поддерживаемых в ОС процессоров использует свой загрузчик. Ниже в данном разделе размещены ссылки для скачивания образов дисков, содержащих такие загрузчики. Так как в различных проектах используются флеш-диски разного объёма, мы подготовили образы для наиболее часто встречающихся размеров uSD. Все образы дисков на нашем сайте хранятся в виде zip-архивов и перед прошивкой их следует разархивировать.
Прошить образ на диск uSD можно с помощью утилиты dd под Linux, либо с помощью программы Winimage под Windows. Для облегчения прошивки под Linux можно воспользоваться нашим мэйкфайлом. В результате прошивки на диске будет размещён загрузчик и файл настройки boot.scr. При просмотре диска стандартными средствами будет виден только файл настройки. Загрузчик для файловой системы всегда остаётся невидимым и определить его наличие на диске можно только по выводу в консоль при загрузке целевой платы. Ниже приведены два варианта прошивки загрузчиков под Linux.
Вариант 1. Утилита dd
Пример вызова утилиты dd из консоли приведён ниже. В этом примере: image.iso — прошиваемый образ диска; /dev/sdc — диск, на который производится запись. Перед вызовом убедитесь, что вы прошиваете образ именно на uSD, а не на жесткий диск с установленной системой!
$ sudo dd bs=1M iflag=fullblock if=image.iso status=progress of=/dev/sdc
Вариант 2. Makefile
Для прошивки образов дисков под Linux можно воспользоваться мэйкфайлом, которым пользуемся мы сами.
Разархивируйте и разместите его в папке со скачанными образами дисков. Перед прошивкой образа с помощью нашего мейкфайла следует указать переменную окружения DEVNAME содержащую имя диска с которым предстоит работать. Например:
$ export DEVNAME=sdc
Далее можно вывести список поддерживаемых команд вызвав утилиту make без параметров или же сразу перейти к прошивке. Например, для прошивки 8-гигабайтного образа диска для процессора V3s следует использовать команду:
$ make v3s-8
Данная команда не только запишет образ на диск, но и проверит его с помощью утилиты fsck. Проверку можно запустить и отдельно с помощью команды:
$ make check
Важно отметить, что все операции с диском будут производиться от имени суперпользователя, так что будьте готовы ввести соответствующий пароль.
Загрузчик V3s
Загрузчики для процессора Allwinner V3s на базе u-boot. Для скачивания доступны 3 образа загрузочных дисков для uSD размером 4Gb, 8Gb и 16Gb.
Загрузчик H3
Загрузчики для процессора Allwinner H3 на базе u-boot. Для скачивания доступны 3 образа загрузочных дисков для uSD размером 4Gb, 8Gb и 16Gb.
Загрузчик A20
Загрузчики для процессора Allwinner A20 на базе u-boot. Для скачивания доступны 3 образа загрузочных дисков для uSD размером 4Gb, 8Gb и 16Gb.
Установщик на встроенную память
Установщик (инсталлятор) – небольшая утилита предназначенная для записи проекта пользователя на встроенный диск. В качестве встроенного диска, обычно, используется память eMMC или NAND. В модуле SE-SOM-A20-B, например, в качестве встроенной памяти используется eMMC карта памяти, подключенная как диск MMC2. После записи пользовательского проекта на встроенный диск процессор будет загружаться именно с этого диска, при этом карта памяти micro SD больше не потребуется. При необходимости слот карты памяти micro SD (MMC0) можно будет использовать для подключения к системе дополнительного диска. Для повторной перезаписи проекта на встроенный диск можно снова воспользоваться инсталлятором.
Создание инсталлятора происходит в два этапа – подготовка диска для использования в качестве установочного и запись устанавливаемого проекта.
Подготовка диска установщика
Для подготовки micro SD диска следует выполнить следующие действия:
- Распаковать содержимое архива и положить папку emmc рядом со скачанным файлом Makefile;
- Вставить диск micro SD в кардридер компьютера;
- Убедиться, что диск виден в системе и задать имя диска в переменной DEVNAME. Например, для работы с диском sdc нужно ввести следующую команду:
$ export DEVNAME=sdc
- Создать загрузочный диск для целевого процессора. При этом на диске появится файл boot.scr – этот файл следует оставить без изменений. Записать образ загрузочного диска можно с помощью команды:
$ make a20-8
- Скопировать файлы инсталлятора из директории emmc на загрузочный диск с помощью команды:
$ make installer
Запись проекта на установщик
Для записи проекта на установочный диск следует выполнить следующие действия:
- Перейти в рабочий каталог устанавливаемого проекта;
- Вставить установочный диск micro SD в кардридер компьютера;
- Убедиться, что диск виден в системе и задать имя диска в переменной DEVNAME. Например, для работы с диском sdc нужно ввести следующую команду:
$ export DEVNAME=sdc
Переписать содержимое директории out проекта на установочный диск в директорию EMMC_CP. Это действие удобно выполнить воспользовавшись командой системы сборки MULTEX-ARM. Данная команда аналогична команде создания установочного диска:
$ make installer
На этом подготовка инсталлятора закончена и диск можно вынимать из кардридера компьютера.
Установка проекта
Для записи проекта на встроенную память целевой платы следует выполнить следующие действия:
- Отключить питание целевой платы;
- Вставить установочный диск в слот памяти целевой платы и включить питание. Через 3 секунды (после загрузки системы инсталлятора) включатся два светодиода на процессорном модуле. Мигающий светодиод, индицирует работу системы. Второй светодиод будет гореть непрерывно – это индикация работы с диском. В процессе работы инсталлятора будет полностью очищена встроенная память eMMC (MMC2), после чего на диск будет записан образ диска image.iso и далее записаны файлы устанавливаемого проекта. В качестве образа диска image.iso используется штатный образ для процессора A20 – a20-8.iso, но, при желании, этот файл можно заменить на пользовательский вариант загрузчика;
- Дождаться окончания работы инсталлятора с диском – светодиод “обращение к диску” должен покаснуть. Длительность записи зависит от общего размера файлов проекта и составляет обычно не больше одной минуты. За ходом выполнения прошивки можно следить через отладочную консоль, подключив к разъёму DEBUG (UART0) переходник TTL-232R-3V3. В качестве терминала удобно использовать программу putty;
- После окончания записи можно получить доступ ка файлам на обоих дисках через отладочную консоль по UART или по сети (сетевой адрес установщика – 10.0.7.149). Кроме того по сети можно подключиться к плате по протоколу FTP. Через консоль можно сразу после прошивки проекта изменить файлы настройки прошиваемой целевой платы с помощью встроенного текстового редактора Edit (вызывается командой ed). При этом нужно учесть, что в системе будут видны два диска: C – установочный диск и D – встроенный диск eMMC с установленным проектом. Для редактирования файла настроек settings.ini на встроенном диске нужно вызвать команду в консоли:
C:/>ed d:/settings.ini
- Выключить питание, вынуть загрузочный диск и включить питание. Загрузка системы должна идти уже со встроенного диска eMMC.
Тестовые проекты
Примеры тестовых проектов MULTEX-ARM для плат на базе поддерживаемых процессоров выкладываются в виде исходных кодов и могут быть использованы как шаблон для создания проектов пользователя.
Содержимое каждого архива следует распаковать и поместить рядом с библиотеками (рядом с директорией /multex-arm). Подробнее о структуре проекта можно прочитать в документации. Примеры позволяют собрать ядро операционной системы с минимальным набором простых драйверов и подключиться к целевой плате через консоль DEBUG-UART либо по сети. Процесс сборки проекта, а также поддерживаемые команды описаны в документации. Важно отметить, что собирать проекты для тестирования следует с опцией debug:
$ make debug
Набрав в терминале команду myTest, являющуюся единственной функцией проекта, можно получить приветственное сообщение от машины 😉
Пример использования задач
В проекте показаны примеры запуска задач и реализация межзадачного взаимодействия.
- Рекомендованная платформа: контроллер управления SE-PC-V3S-351
Демонстрационные примеры
Готовые демонстрационные примеры, использующие дополнительные библиотеки выкладываются в виде скомпилированных бинарных файлов. Их можно запустить на целевой плате и протестировать некоторые возможности программно-аппаратной платформы.
Демонстрация графики на Allwinner V3s
В примере показаны возможности вывода графики на дисплей и обработки событий тач-пада на базе процессора Allwinner V3s.
- Рекомендованная платформа: контроллер управления SE-PC-V3S-351