Всем привет.

В данной статье я хочу поделиться двумя новостями. Во-первых, открытый российский Embox выложил в открытый доступ базовые драйвера для российского процессора семейства KOMDIV64, и данный российский процессор стал более открытым и доступным. А во-вторых, вдохновившись командой Северстали, которые делают открытую АСУ-ТП, мы запустили на этом открытом российском процессоре открытую среду для МЭК 61499 (4Diac).


Краткая справка.

Семейство KOMDIV64 - семейство 64-разрядных микропроцессоров, разработанных в научно-исследовательском институте системных исследований (НИИСИ). Ядра данной серии процессоров совместимы с архитектурой MIPS-64 и являются оригинальной разработкой НИИСИ. Демонстрироваться работа будет на плате Багет-ПЛК1-01. которая работает на микроконтроллере К5500ВК018.

Начну с короткого видео на котором демонстрируется работа Embox на данном процессоре.

Embox на KOMDIV64

И теперь расскажу как это воспроизвести самостоятельно. Это возможно, ведь все драйвера для работы доступны в нашем репозитории. Конечно потребуется сама плата или ее эмулятор.

Краткая инструкция по сборки описана на нашем вики.

Вам потребуется кросс-компилятор MIPS который вы можете установить из пакетов, либо собрать самостоятельно, либо скачать у нас бинарную. сборку .

Сборка

make confload-platform/niisi/baget_plc1 
make

Загрузка на плату

Пока embox запускается с SD карты на плате и использует встроенный загрузчик, в будущем мы планируем вариант старта прямо из flash памяти

Подготовим загрузочный скрипт, он у нас лежит в репозитории. Имя  barebox.sh

Содержимое простое

#!/bin/sh

###### Embox ######
memcpy -l -s ./embox.bin 0x0 0xffffffff80001000 0x4000000
go 0xffffffff80001000

Этот скрипт нужно скопировать в папку boot/barebox/ на SD карте. Туда же нужно положить файл embox.bin, образ собранного embox

sudo cp build/base/bin/embox.bin <path to SD>/boot/barebox/ 

Запуск

Просто подаем питание и видим консоль

Мигаем светодиодом из консоли

Традиционно проверим работу таймера командой ticker -c 10 а также включим светодиод с помощью команды pin. На плате 2 светодиода подключенных к порту D (пины 4 и 5), активный уровень у них низкий

зажечь светодиод

pin GPIOD 5 reset

Погасить светодиод

pin GPIOD 5 set

Ethernet

на плате есть разъем ethernet и мы будем использовать сеть ниже.
пока просто посмотрим настройки командой ifconfig

Содержимое образа

На данный момент реализовали ряд базовых драйверов, включая таймер, контроллер прерываний и ethernet. Вот кусок конфига.

    include embox.driver.serial.ns16550(reg_width=1)
    include embox.driver.serial.ns16550_diag(base_addr=0x1ff70000)
    include embox.driver.serial.ns16550_ttyS0(base_addr=0x1ff70000, irq_num=20)
    include embox.driver.serial.ns16550_ttyS1(base_addr=0x1b510000, irq_num=21)
    include embox.driver.diag(impl="embox__driver__serial__ns16550_diag")

    include embox.driver.interrupt.niisi.sc64_intc_v2

    @Runlevel(2) include embox.driver.clock.niisi.sc64_timer_v2
    include embox.kernel.time.jiffies(cs_name="sc64_timer_v2", period=100)

    @Runlevel(2) include embox.driver.gpio.niisi.sc64_gpio_mcu

    @Runlevel(2) include embox.driver.net.sc64_tulip

есть еще драйвера для SPI и I2C, все драйвера открыты и доступны у нас в репозитории.

4Diac на Embox

4Diac это свободная реализация среды программирования и рантайм для стандарта МЭК 61499 принятого в АСУ-ТП. Данный стандарт может применяться и в других сферах, например робототехнике.

Я расскажу только о работе 4Diac под embox, ведь в этом случае не важно на какой аппаратной платформе работает runtime. В видео ниже, будет показано работа и на QEMU (с ARM архитектурой) и на плате KOMDIV64

Создание проекта 4diac

Для разработки программы нужно создать проект. Нажимаем правую кнопку мыши, и выбираем new->4diac IDE project

Создание системной конфигурации

Создадим системную конфигурацию на которой будет запускаться наша программа. Добавим к ней ethernet чтобы иметь возможность загружать (и отлаживать) программы удаленно.

IP адрес для Embox в QEMU - 10.0.2.16, для платы тот который есть на плате, у нас 192.168.2.2

Импорт функциональных блоков (FB)

Мы добавили пару простых функциональных блоков для проверки рантайма. Включить и выключить светодиод.

Для импорта правой кнопкой мышки на проекте и там выбираем import -> file system

Создание программы

После импорта FB, мы можем использовать наши функциональные блоки для разработки программы

Разработаем ее, после этого отобразим на нашей системной конфигурации (EMB_RES)

Откроем EMB_RES ( System Configuration -> FORTE_PC -> EMB_RES). И соединим START (Cold & Warm) с  E_CYRCLE (Start ).

Все наша программа разработана и готова к загрузке

Embox

Сборка

Для конфигурации embox под arm/qemu используете

make confload-project/4diac/arm_qemu

для платы baget_plc1_01

make confload-project/4diac/niisi_baget_plc1

после конфигурации, как обычно собираем командой make

make

Запуск

Загрузка и запуск embox зависит от платформы, для baget_plc1_01 это описано выше, а для qemu использовуем скрипт ./scripts/qemu/auto_qemu

./scripts/qemu/auto_qemu

Запуск forte (4diac runtime)

После старта embox можно запустить рантайм 4diac в двух вариантах, с работой из файла и с ожиданием загрузки по сети

файл передается с помощью флага -f

forte -f <file_name>.fboot

Нас сейчас интересует запуск в режиме загрузки по сети просто команда forte

forte

Загрузка программы на embox

Удаленный deploy

В 4Diac-ide правой кнопкой на проекте и выбираем “deploy”

Нужно убедиться что у нас правильный IP адрес и что forte запущена на embox

Программа в виде файла

После того как мы отладили нашу программу, мы можем сгенерить отдельный файл и запустить наш рантайм с этой программой

Для этого на “EMB_RES” нажимаем правую кнопку мыши и выбираем пункт “Create FORTE boot files”. Файл сохраняем в папке корневой файловой системы embox (conf/rootfs/ ) и после этого пересобираем проект

Демонстрация

На этом видео можно видеть процесс создания программы и запуска на QEMU и BAGET_PLC1_01

Заключение

В заключение хочу сказать, что информация об отсутствии российских процессоров несколько преувеличена.  Да, есть большое количество трудностей, и наверное, сейчас, мы не можем предложить решения во всех сегментах, но в критически важных, к которым относится и АСУ-ТП, уже можно пробовать создавать конечные системы.

На мой взгляд, нам, для этого  не хватает открытости и доверия к друг другу. Но мне кажется Embox может стать базовой платформой которую можно развивать совместно! И, следовательно, меньшими затратами получать большую ценность для конечных систем. Я имею в виду принцип Линукс, когда драйвера разрабатываются производителями микроэлектроники, поддержка платформ и протоколов осуществляется производителями оборудования и так далее.  И данная статья этому подтверждение, ведь мы открыли очередной, ранее закрытый, процессор, для всех.

Комментарии (26)


  1. ZlobniyShurik
    04.12.2025 15:46

    Почему-то вспомнилась поговорка "ДорогА ложка к обеду".

    То, что есть хотя бы такие микропроцессоры - это, конечно, круто.

    Но MIPS, вроде как, снимают или уже сняли с поддержки практически во всех более-менее популярных дистрибутивах. И возникает вопрос - "а не поздновато ли спохватились с открытием драйверов и документации?"


    1. abondarev Автор
      04.12.2025 15:46

      Документацию мы не можем открыть, она не наша.

      На счет открытия драйверов, мы их открыли для Embox! Линуксовые не наши, но мы знаем, что есть определенные подвижки в их открытии у НИИСИ.

      На счет поздно, ну поскольку речь идет об АСУ-ТП и КИИ, то это достаточно специфичная тема, и там не используются обычные дистрибутивы. А открытие может способствовать развитию нашей микроэлектроники.


      1. NutsUnderline
        04.12.2025 15:46

        раз уж про АСУТП - что на этой плате (хотя бы в рамках embox) сделано в рамках работы с CAN интерфейсом?


        1. abondarev Автор
          04.12.2025 15:46

          Пока ничего.
          Это только начало процесса, в будущем будут расширяться, улучшаться и так далее. И так, мы надеюсь придем к хорошим доступным решениям. С чего то нужно начинать :)


    1. itGuevara
      04.12.2025 15:46

      Почему-то вспомнилась поговорка "ДорогА ложка к обеду".

      "Двадцать лет спустя" для "конвейерный однокристальный микропроцессор для интенсивных вычислений" - еще не срок. Был бы востребован "для интенсивных вычислений". В каталогах ВПК он уже более 30 лет (с учетом анонсов), но обычно "только в каталогах" ...

      30 лет назад MIPS - конечно было круто. Однако все это "не перетекло" в гражданку, название Комдив - не случайно и оно отражает основной замысел.

      Полагаю, что с таким подходом востребован (даже более практичнее, совместимее, документированный и т.п.) и "отечественный" КМ1810ВМ86 который выпускали как минимум в 2000-х (март 2000).


      1. abondarev Автор
        04.12.2025 15:46

        30 лет назад MIPS - конечно было круто. Однако все это "не перетекло" в гражданку, название Комдив - не случайно и оно отражает основной замысел.

        Согласен, что не перетекло, и это проблема. Но статья как раз о том, что мы пытаемся помочь перетечь :) Конечно, это первые шаги на долгом пути, но идти точно нужно!


  1. virst
    04.12.2025 15:46

    Статься очень интересная и информативная, но все время чтения я так и не понял: как получить такую же железку для личных экспериментов.
    И касательно "информация об отсутствии российских процессоров несколько преувеличена" это напоминает ситуацию в СССР когда в стране формально есть все, но в магазинах нет ничего.
    Возможно я сложно высказываюсь, но я просто хочу сказать, что бы того что бы комьюнити эффективно развивало продукт нужна доступность не только кода но и железа. Условные raspberry pi и arduino можно купить чуть ли не в каждом продуктовом, вот народ и штампует под них софт и прочее.


    1. Siemargl
      04.12.2025 15:46

      Более того, полный али экспресс клонов вполне себе толкового Mitsubishi fx и подобных s7-200, для которых даже и низкоуровневое подпрыгивание не нужно.


      1. NutsUnderline
        04.12.2025 15:46

        на ali сегодня есть, завтра нет, или сменили железо, или прошивку кардинально поменяли, и никому ничего не сказали, даже на китайском. Те же клоны Mitsubishi не использовали оригинальную прошивку, а китайское народное творчество с соотв. качеством работы


        1. nixtonixto
          04.12.2025 15:46

          Ардуино и Расбери, как появились на Али лет 15 назад, так до сих пор не пропали. Да, чипы меняются, но обратная совместимость остаётся.


          1. abondarev Автор
            04.12.2025 15:46

            Тут речь шла о прошивках которые используются как есть. То есть бинарная прошивка. А если распбери или ардуино, то у совместимость на уровне апи (исходников). У малины например, еще и нужно учитывать что за линукс установлен.

            А в статье, как раз речь о том что открыли исходники, и каждый может воспроизвести! То есть, стремимся к экосистеме (ардуино, распбери ...)


    1. Arhammon
      04.12.2025 15:46

      А толку от появления в магазинах? Кто, кроме импортозаместилелей, её брать за 20к будет?


      1. virst
        04.12.2025 15:46

        а вот не нужно 20к, 20к из-за штучности продукта. Если сделать продукт массовым, то и цена сможет снизится и в итоге в выигрыше не только народ, но и целевой потребитель. Вот только выше писали верно, вспышка уже упущена, поздно метаться. :(


        1. abondarev Автор
          04.12.2025 15:46

          вспышка уже упущена, поздно метаться. :(

          Не согласен, нужно начинать, пока не начнем так и будем писать что упущена!


        1. Arhammon
          04.12.2025 15:46

          Если? А есть возможность? Чтоб сделать массовым, надо культуру производства и в первую очередь культуру управления... И сам котроллер попадалось, что стоит 3к - что вроде как вообще дешево для подобной экзотики...


          1. abondarev Автор
            04.12.2025 15:46

            Чтобы сделать массовым нужен прежде всего рынок :)

            С остальным конечно тоже согласен, но без рынка можно не думать об остальном :)


      1. abondarev Автор
        04.12.2025 15:46

        Кто, кроме импортозаместилелей, её брать за 20к будет?

        Во первых, Вы несколько отстали, сейчас говорят о технологической независимости, а иногда (я предпочитаю) о технологическом лидерстве (до которого еще нужно дорасти конечно, но начинать надо).

        А во вторых, конечно сначала ориентация на компании, но есть еще определенный класс людей, которые с радостью попробуют российские технологии!


        1. Arhammon
          04.12.2025 15:46

          сейчас говорят о технологической независимости

          Предыдущую независимость(в какой-то мере даже настоящую) очень быстро начали дербанить на драгметалы после появления импорта...


          1. abondarev Автор
            04.12.2025 15:46

            Ну Вы же сами сказали, в какой то мере настоящую, давайте ее создадим :) А не будем говорить, что все вокруг плохие, и вообще воры :)

            Вот мы сделали свой маленький вклад :) Надеюсь найдем единомышленников, консолидируем усилия и сможем добиться лидерства!


    1. abondarev Автор
      04.12.2025 15:46

      Статься очень интересная и информативная

      Спасибо!

      что бы комьюнити эффективно развивало продукт нужна доступность не только кода но и железа.

      Кто же спорит :)

      Условные raspberry pi и arduino можно купить чуть ли не в каждом продуктовом, вот народ и штампует под них софт и прочее.

      А вот тут, не до конца согласен. Покапать стали в таких масштабах, когда создалась экосистема (ПО куча, купил сразу что то поделал). В качестве доказательства своего тезиса, чипы у этих платформ меняются, но это не мешает их покупать!

      как получить такую же железку для личных экспериментов.

      Пока к сожалению никак :( Но шаги в этом направлении делаются.


  1. NutsUnderline
    04.12.2025 15:46

    интересно в целом, но подход к изложению - не очень.

    на КДПВ должен быть сам Багет а не замылевшие взгляд нейрокартинки. Даже взгляда было бы достаточно чтобы понять о чем идет речь. Плюс спецификации на К5500ВК018 - по ссылке их еще сыскать надо внизу страницы. чтобы сразу было понятно что это вещь в корпусе на 256 выводов, но типа микроконтроллер - не ардуинка, но вполне себе малинка. И в теории оно годно далеко не только для АСУТП


    1. abondarev Автор
      04.12.2025 15:46

      интересно в целом, но подход к изложению - не очень.

      Спасибо, стиль будем улучшать

      на КДПВ должен быть сам Багет а не замылевшие взгляд нейрокартинки.

      Картинки рисует живой дизайнер (Тамара Дерюгина), а не нейронка. Посмотрите серию про коробочку в других статьях.

      И в теории оно годно далеко не только для АСУТП

      Да, конечно, АСУ-ТП только один из примеров, где вполне подходит.


      1. NutsUnderline
        04.12.2025 15:46

        Картинки рисует живой дизайнер

        о. ну.. в наше время это комплимент :) Но моя мысль не меняется


        1. abondarev Автор
          04.12.2025 15:46

          Спасибо. Учтем!


  1. nixtonixto
    04.12.2025 15:46

    Начну с короткого видео на котором демонстрируется

    Загружайте видео на какой-то другой хостинг, или прикладывайте ссылку. У меня вместо видео красуется надпись "Произошла ошибка".


    1. abondarev Автор
      04.12.2025 15:46

      Хорошо, спасибо. Раньше на youtube лили, но сейчас как то не правильно это. Может еще на rutube скинем
      Пока вот ссылки

      https://vk.com/wall-54669112_387
      https://vk.com/wall-54669112_390