Как, наверное, многие на хабре знают, мы в проекте Embox любим запускаться на отечественных процессорах.

Эта статья – своеобразный (расширенный) анонс того, что Embox перенесен на микроконтроллеры еще одного производителя микроэлектроники в РФ. Речь идет о технологической платформе «Vostok» от ООО «Новатор» базирующейся на микроконтроллерах ГК «Элемент».


Напомню, что начали мы изучение отечественных платформ с процессора Мультиклет и сразу же получили подтверждение простой истине: без экосистемы, процессор, каким бы хорошим (быстрым, мощным энергосберегающим) он ни был, особо никому не нужен. Очевидно, что современная экосистема (по крайней мере базовая) может быть построена только на СПО, ведь там есть готовые и отлаженные компиляторы, и средства разработки, и ОС или заменяющие их фреймворки.

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

Отсюда происходит естественное желание использовать тот код/проект, на который ты можешь повлиять, например, внести поддержку своего процессора. Да, поддерживать эту часть будешь ты, но затраты на сопровождение и синхронизацию будут существенно ниже.

В описываемой мной схеме все могут узнать модель, по которой развивается Линукс. Я говорю, в первую очередь, о направлении embedded, которое отличается очень разнообразным оборудованием. Наличие же огромного количества ПО на все случаи жизни полностью окупает адаптацию аппаратуры, осуществляемую самим производителем чипов.

Не буду повторяться о паре недостатков Линукс, которые описали в этой статье, только напомню, что на микроконтроллерах он избыточен, т. к. традиционно эти устройства относятся не к универсальным, а к специализированным системам с фиксированной функциональностью. На микроконтроллерах обычно используется какая-нибудь маленькая RTOS, например FreeRTOS, недостатком которых является необходимость разработки всего функционала устройства. По сути дела, это – разработка с нуля, пусть и из готовых кирпичиков, т. к. подобные ОС не имеют переносимого API. И конечно, готовые кирпичики есть для ограниченного круга задач, например, запуск Qt или OpenCV таких RTOS не возможен.

Технологическая платформа «Восток» базируется на идее построения экосистемы вокруг отечественной электроники через предоставление пользователям готовых программно-аппаратных решений. Причем эти решения ориентированы на очень широкий класс пользователей: от обучения школьников робототехнике (уже разработан аналог ARDUINO) и до промышленной автоматики и роботов.

Поэтому когда у «Восток» появилась необходимость выбора базовой ОС РВ для своей платформы, выбор был очевиден и неминуемо привел нас к сотрудничеству, ведь Embox:

  • открытый проект,

  • позволяет пользоваться экосистемой Linux,

  • позволяет привычно разрабатывать,

  • позволяет получить оптимизированную под конкретные цели систему,

  • имеет поддержку в РФ.

На данный момент Embox портирован на плату Vostok Uno-VN035 на базе микроконтроллера 1921ВК035.

Данный микроконтроллер имеет всего 16 Кбайт ОЗУ и 64 Кбайт ПЗУ (FLASH). Этого хватило, чтобы использовать Embox, и разработчики «Восток» добились достаточно приличной функциональности, но все-таки этого объема памяти хватает только для ограниченного количества задач.

Основной целью портирования было отладить базовые драйвера, а также опробовать процессы разработки и взаимодействия. Как я уже упоминал, конечной целью для “Vostok” является создание программно-аппаратной платформы, и тут очень важны именно поддержка, развитие, сопровождение.

Кроме того, на выставке «Микроэлектроника» уже анонсирован новый МК от НИЭТ К1921ВГ015, который базируется на отечественном RISC-V ядре, имеет гораздо более развитую периферию, целый мегабайт ПЗУ (FLASH) и два блока ОЗУ (256 и 64 кб). Данный МК будет сердцем новой, уже существующей платы, в серии технологической платформы “Vostok”.  И его ресурсов уже вполне достаточно для очень широкого спектра систем в том числе для АСУ-ТП и робототехники.

В завершение приведу короткую инструкцию, как запустить Embox на платформе Vostok UNO-VN035

  • Подключите плату с помощью jtag (сигналы (PA2 SWCLK, PA3 SWDIO, GND) распиновка показана здесь

  • Скачайте и соберите openocd от DC Vostok с поддержкой 1921ВК035 c github (https://github.com/DCVostok/openocd-k1921vk )

  • перейдите в папку tcl в собранном openocd

  • Сотрите если требуется оригинальный загрузчик. Для этого:

    • при зажатой  кнопке user, нажмите и отпустите кнопку ресет.

    • сотрите всю флешь память с помощью команды
      openocd -f interface/stlink-v2.cfg -f target/k1921vk035.cfg -c "transport select hla_swd; init; reset init; flash probe 0; k1921vk035 srv_erase; exit"

  • Подключите USB-UART через зазъем USB type-C

  • Откройте консоль :
    sudo minicom -D /dev/ttyUSB0 -b 115200

  • Подключитесь openocd к плате
    sudo ../src/openocd -f interface/stlink.cfg -f target/k1921vk035.cfg

  • Собирите Embox:
    make confload-platform/vostok/vostok_uno_vn035; make

  • Прошейте Embox  помощью gdb

    • arm-none-eabi-gdb build/base/bin/embox

    • команды внутри gdb

      • monitor reset halt

      • load

      • continue

В консоли можно набирать команды например управлять светодиодом

Инструкция описана у нас на wiki https://github.com/embox/embox/wiki/Vostok_UNO_VN035 

Больше информации по самой плате на github самого производителя https://github.com/DCVostok/vostok-1-frmwrk-vn-arduino. И у разработчика есть телеграм чат

P.S. Также сообщу, что работа по МК К1921ВГ015 ведется! И уже в середине декабря планируется вебинар по разработке на новой плате платформы «Восток» с помощью Embox. Следите за обновлениями в телеграм чате

P.P.S
30 ноября 2023 г. в 16.00 MSK состоится долгожданный вебинар «Микроконтроллеры RISC-V в России: настоящее и будущее», открывающий соответствующую серию, посвящённую новым российским продуктам и обучению работе с ними. В рамках первого вебинара серии будут представлены продукты, выходящие на рынок в 2024 году, и инструкции по первым шагам и особенностям разработки программного обеспечения для них.

На вебинаре выступят
Окунев Константин Евгеньевич, директор по технологическому развитию, АО Элемент;
Лямаев Михаил Сергеевич, старший программист, Дизайн центр VOSTOK.

Ссылка на мероприятие: https://my.mts-link.ru/60191893/1169412898

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


  1. Dynasaur
    29.11.2023 17:31
    +3

    Очень любопытно. Судя по названию платки и её форм-фактору Vostok Uno-VN035  должны быть клоном Ардуино-Уно? Но судя по статье, код от Ардуино на ней не запускается? А почему не сделали совместимой? Всё-таки надеяться на толпу желающих (особенно школьников) изучать Embox не логично. А на ардуинщиков вы бы вполне могли рассчитывать. А это и большая аудитория и большой пласт готовых решений. Та самая экосистема, которой вам не хватает с самого начала статьи.


    1. NutsUnderline
      29.11.2023 17:31
      +1

      1. Dynasaur
        29.11.2023 17:31

        Ну, уже неплохо. Я так понимаю, это прошивается в контроллер без установки на него всяких линуксов?


        1. NutsUnderline
          29.11.2023 17:31
          +1

          всякий линукс на него вообще сложновато установить. компиляторы и флешер там и под винду и под всякие линуксы есть


        1. abondarev Автор
          29.11.2023 17:31
          +3

          О каких линуксах речь? embox это не linux
          Если речь о средствах разработки то под виндой тоже вполне себе соберется
          https://github.com/embox/embox/wiki/Building-and-debugging-embox-on-STM32-using-Win11-wsl2-openocd


    1. abondarev Автор
      29.11.2023 17:31

      Но судя по статье, код от Ардуино на ней не запускается?

      А в каком месте, я говорю, что что-то не запускается? Я вроде только о том, что запускается.
      Как отмечено выше в комментариях, arduino запускается. И вроде я даже ссылку на статью давал про обзор этой платы.

      Всё-таки надеяться на толпу желающих (особенно школьников) изучать Embox не логично.

      Опять же, не понимаю, откуда такая уверенность?

      Та самая экосистема, которой вам не хватает с самого начала статьи.

      Цитата из статьи

      Причем эти решения ориентированы на очень широкий класс пользователей:
      от обучения школьников робототехнике (уже разработан аналог ARDUINO) и
      до промышленной автоматики и роботов.

      Экосистема ардуино, прекрасно подходит для хоби проектов и мягко говоря не подходит для промышлености.


  1. ripandtear
    29.11.2023 17:31
    +1

    Микроконтроллеры это конечно хорошо, но было бы неплохо обратить внимание и на производство своих ПЛИС, где есть только зачатки у Миландра (Непонятно в каком сейчас состоянии) и клоны понятно чего от ВЗПП-С. Оба варианта для энтузиастов/хоббистов и т.п. сейчас не подходят, в виду цен и невозможности (либо возможности, но с большими усилиями) получения физическими лицами...


    1. NutsUnderline
      29.11.2023 17:31
      +1

      думаете, ответственные товарищи это прочитают и займутся?


      1. Reallyhuman
        29.11.2023 17:31

        Нет сомнений, что ответственные нетоварищи набегут и начнут рассказывать, что "ну там же ничего российского", при этом цокая копытцами по айфонам, сделанным на том же заводе.


    1. Gay_Lussak
      29.11.2023 17:31
      +2

      У Миландра только специализированная ПЛИС есть - радстойкая на 2к элементов. На такой много каши не сваришь.


    1. abondarev Автор
      29.11.2023 17:31

      если мы вообще за микроэлектронику, хотя статья не об этом, то да, много нужно чего развивать, в том числе и ПЛИС, но если сидеть и рассуждать, как же все плохо, а не делать вот такие шаги, как в статье, то вряд-ли и через десять и через сто лет что нибудь изменится!


      1. ripandtear
        29.11.2023 17:31

        Смысл моего комментария был не в " рассуждать как все плохо" а в том, что на тему своих ПЛИС так же хотелось бы внимания. В плане микроконтроллеров все как раз в каком-то смысле у нас хорошо, многие их у нас уже проектируют и делают/делали на TSMC или где-то там еще. Осталось производство здесь наладить, и будет вообще отлично. Кстати, емнип, самый доступный по цене, К1986ВЕ92QI от Миландра, который в целом сильно похож на популярный STM32F103. Его можно найти в пределах 1к рублей в пластике, если задаться целью.


        1. kenny5660
          29.11.2023 17:31

          Разные уровни разработки, на микроконтроллере почти все блоки разрабатываются на Verilog, потом под нужный завод синтезируется. А ПЛИС уже это история про аналоговую разработку ячейки LUT и его массива под конкретный завод и техпроцесс. Исходя из этого для разработки нужны совершенно другого класса специалисты.


  1. VladimirFarshatov
    29.11.2023 17:31
    +6

    Второй раз натыкаюсь на эту платку, которую "не купишь", а если и купишь то цена "конская", хотя и двумя руками "за", поскольку когда-то это всё но надо начинать. Тиражировать надо такие платы не по 50 штук "установочной партии", а тысячами и раздавать всем желающим в РФ, если не бесплатно, то раза в два ниже чем платы на базе STM32F4xx с Алиэкспресс. Да, за счет госфинансирования производства, ибо дело нужное.

    В период 2015-2019гг тоже обошел все сайты наших предприятий в т.ч. и НИИЭТ, в поисках "импортозамещенного" микроконтроллера, перспективного в плане "Ардуино для детей" .. увы, но опыт оказался отрицательным: или не купишь как частное лицо, или нет документации или цена конская или ещё какие проблемы.. :( Поэтому и делал свою версию Ардуино Мега2560, хотя и тщательно смотрел кто и что производит "передового" на тот период.

    Ну и по форм-фактору.. Ардуино Уно, Мега .. как мне кажется, достаточно неудобный форм-фактор и из каких соображений он такой - непонятно. Сам исходил из корпуса для элементов питания 18550 и размер подгонял под форм-фактор Лего кубиков, т.к. основной обвязочный материал - Лего.

    Получилось так: https://community.alexgyver.ru/threads/samodelnaja-plata-na-baze-mikrokontrollera-avr-atmel-atmega2560-16au.1454

    и плата расширителя ОЗУ до 520кб: https://community.alexgyver.ru/threads/dispetcher-vneshnej-sram-dlja-avr-mega2560-mega128a-etc.1416

    Начинал делать "свою RTOS", но помешал Ковид и пр. последствия.. заброшено на сию. Хуже другое: пока пробовал, делал, шагал от версии к версии, в школах практически от Ардуино отказались и перешли на готовые конструкторы стоимостью от 200 тысяч тех рублей.

    Кстати по стоимости: разработка конкретно этой платы обошлась в пределе 2000р/шт, и это розничное и "кустарное" производство.. ;)


    1. abondarev Автор
      29.11.2023 17:31

      Да, за счет госфинансирования производства, ибо дело нужное.

      То что описано в статье, сделано не за счет гос финансирования:)

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

      Получилось так: https://community.alexgyver.ru/threads/samodelnaja-plata-na-baze-mikrokontrollera-avr-atmel-atmega2560-16au.1454

      Отличная идея!

      Начинал делать "свою RTOS",

      Современный мир показывает, что нужно специализироваться, и выстраивать кооперацию (цепочки поставок) иначе не эффективно.


    1. Dynasaur
      29.11.2023 17:31
      +2

      Объясните мне, что за зуд такой "делать свою RTOS" и при этом жаловаться на отсутствие экосистемы. Это взаимосвязанные явления, нет разве?


  1. skymal4ik
    29.11.2023 17:31
    +1

    Сначала подумал про ракету-носитель Восток и подумал как круто было бы :)

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


    1. abondarev Автор
      29.11.2023 17:31
      +1

      Спасибо, так и делаем!:)


    1. NutsUnderline
      29.11.2023 17:31

      тут еще воздушные шары с таким названием запускают


      1. abondarev Автор
        29.11.2023 17:31

        :)


    1. Mike-M
      29.11.2023 17:31

      Только бы этот Восток не постигла участь Байкала и Эльбруса...


      1. abondarev Автор
        29.11.2023 17:31

        А что с ними? мы общаемся, надеюсь в обозримом будущем объявим о новых поддерживаемых чипах:)


        1. Mike-M
          29.11.2023 17:31
          +1

          "До марта 2022 года процессоры «Байкал» и «Эльбрус» выпускала тайваньская компания TSMC. В 2022 году готовые партии данных процессоров не отпускались в Россию". (источник)


          1. abondarev Автор
            29.11.2023 17:31

            А, да, такое есть. Но, насколько я знаю, оба упомянутых микроконтроллера на Микроне выпускаются. То есть, полностью локализованное производство.


  1. aabzel
    29.11.2023 17:31
    +1

    Приятно смотреть как другие тоже делают UART-CLI для микроконтроллеров.


    Вот только раскраску логов добавить еще надо.

    https://habr.com/ru/articles/694408/

    Правильно!


    1. abondarev Автор
      29.11.2023 17:31

      Спасибо!

      Сами мы пришли скорее из Linux embedded, поэтому нам вообще трудно понять как без командной строки. У вас хорошая статья, но мы постоянно сталкиваемся с мнением, "мне не нужно, значит и вы должны делать, так как я". На попытку объяснить, насколько быстро разрабатывать переносимый и подерживаемый код например (https://habr.com/ru/companies/embox/articles/538416/ или https://habr.com/ru/companies/embox/articles/541662/) мы сталкиваемся с непониманием и утверждением, что нужно все делать чуть ли не бареметал.


      У нас кстати, не только UART-CLI, а почти командный интерпретатор почти как в Linux. Показали удобство в статье про файловую систему https://habr.com/ru/companies/embox/articles/573244/ И да, можно зайти telnet ssh и делать тоже самое.

      На счет подстветки, спасибо за идею, у нас она реализована в каком то shell через стандартные тертинальные последовательности. Но не получила распространение, не очень востребована. Но посмотрю вашу реализацию, возможно она более гибкая и удобная!