Входит в Реестр Российского Программного Обеспечения.
Операционная система жесткого реального времени MULTEX-ARM
Операционная система жесткого реального времени MULTEX-ARM предназначена для встраиваемых систем. Она предоставляет пользователю полный набор функций для разработки и функционирования систем в реальном времени на конкретном аппаратном оборудовании. Собирая проект на базе ОСРВ MULTEX-ARM разработчик получает компактный загружаемый бинарный файл, содержащий монолитное ядро операционной системы скомпонованное с процедурами проекта.
Цена ОСРВ MULTEX-ARM
- Базовый набор библиотек операционной системы жесткого реального времени MULTEX-ARM распространяется бесплатно;
- Стоимость полного набора библиотек предоставляется по запросу на почту mail@set-code.ru.
Жесткое реальное время подразумевает гарантированную реакцию на каждое событие в течение определённого интервала времени. Для 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-ARM ver. 5.9
Полное описание
Документ содержит описания концепций, заложенных в основу Операционной Системы Реального Времени MULTEX-ARM, а также полный список вызовов функций.
В обновлении 5.9 добавлена возможность использования механизмов межзадачного взаимодействия в прерываниях.
Список изменений:
- Перевод обработчиков прерываний на семафоры и очереди.
- Поддержка второго ядра для процессора A20.
- Поддержка Image Signal Processor для процессора A20.
- В базовый набор библиотек добавлена поддержка USB.
- Улучшена работа интерфейсов CSI, I2C.
- Значительно улучшена работа сетевых протоколов UDP/TCP/FTP.
- Модернизация API библиотеки шрифтов.
- Улучшена работа библиотек с камерами OV2710 и ASX340.
- В систему сборки добавлена возможность обновления файлов прошивки по FTP.
- Добавлена поддержка комментариев в конфигурационных файлах.
Документацию на предыдущие версии MULTEX-ARM можно посмотреть в нашем архиве. Перейти в архив можно по ссылке ниже.
Новости проекта
Файлы для скачивания
ОСРВ MULTEX-ARM ver. 5.9
Дата публикации 29.07.2024
ОСРВ Multex-ARM поставляется в виде набора библиотек. Часть из них распространяется бесплатно и выложена в открытом доступе на сайте set-code.ru. Остальные библиотеки распространяется на коммерческой основе и предоставляются по запросу на почту mail@set-code.ru. Полный перечень известных библиотек, совместимых с ОСРВ Multex-ARM доступен для просмотра в базе знаний в формате pdf.
Базовый набор библиотек
Базовый набор библиотек ОСРВ MULTEX-ARM распространяется бесплатно в виде скомпилированных бинарных файлов, набора заголовочных файлов и утилит для сборки проекта. Базовый набор может быть использован в проектах пользователя без каких-либо ограничений. В базовый набор входят библиотеки ядра ОС и драйвера простых интерфейсов (UART, I2C, SPI, Ethernet).
Перед скачиванием библиотек следует ознакомиться с условиями лицензионного соглашения.
Полный набор библиотек
Библиотеки мультимедиа используемые для захвата видео потока, кодирования, декодирования и воспроизведения видео поставляются по запросу на почту mail@set-code.ru.
Архив
Предыдущие версии 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.
Установщик на встроенную память
Актуальная версия установщика 3.06.01 собрана на ядре Multex-ARM 5.9.
Установщик (инсталлятор) – небольшая утилита предназначенная для записи проекта пользователя на встроенный диск. В качестве встроенного диска, обычно, используется память 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. Через консоль можно сразу после прошивки проекта изменить файлы настройки прошиваемой целевой платы с помощью встроенного текстового редактора Note (вызывается командой nt). При этом нужно учесть, что в системе будут видны два диска: C – установочный диск и D – встроенный диск eMMC с установленным проектом. Для редактирования файла настроек settings.ini на встроенном диске нужно вызвать команду в консоли:
D:/>nt 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