Как, наверное, многие на хабре знают, мы в проекте 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