MIK32 Амур (К1948ВК018) — первый российский 32-битный микроконтроллер на ядре RISC-V от АО «Микрон». Для работы с ним разработчики предлагают связку VS Code + PlatformIO. Казалось бы, всё просто — но на практике сталкиваешься с множеством неочевидных шагов, которые нигде не собраны в одном месте. В этой статье я пошагово покажу, как развернуть полноценную среду разработки для MIK32 Амур на Windows.

Что понадобится

  • Отладочная плата с MIK32 Амур

  • JTAG-адаптер (Mikron-Link/Start-Link — часто встроен прямо в отладочную плату)

  • Кабель USB (micro-USB или Type-C, зависит от программатора)

  • Windows 11 (У меня такая версия. Возможно, на других версиях будут другие сюрпризы)

    С такой отладочной платой я и работал (отмечу сходство с платой NUCLEO)
    С такой отладочной платой я и работал (отмечу сходство с платой NUCLEO)

Шаг 1. Установка Visual Studio Code

Скачайте VS Code с официального сайта: code.visualstudio.com — пояснять тут нечего.

Шаг 2. Установка PlatformIO

Откройте VS Code, нажмите Ctrl+Shift+X — откроется панель расширений. В строке поиска введите «PlatformIO IDE» и нажмите Install. Установка займёт пару минут — PlatformIO скачает Python-окружение и необходимые утилиты.

После установки в левой панели VS Code появится иконка PlatformIO (муравей).

PlatformIO — кроссплатформенный инструмент для встраиваемой разработки, который автоматически подтягивает тулчейн, HAL и настройки сборки под конкретный микроконтроллер, работает как расширение VS Code.

Шаг 3. Установка платформы MIK32

Это ключевой шаг, на котором многие спотыкаются. MIK32 не входит в стандартную библиотеку платформ PlatformIO — её нужно установить вручную.

  1. Перейдите на страницу релизов: github.com/MikronMIK32/mik32-platformio/releases

  2. Скачайте архив последней версии (например, mik32-platformio-0.5.0.zip).

  3. Распакуйте архив. Внутри будут папки packages и platforms.

  4. Слейте содержимое этих папок с директорией PlatformIO. На Windows путь:

    C:\Users\ВАШ_ПОЛЬЗОВАТЕЛЬ\.platformio\
  5. Перезапустите VS Code.

Шаг 4. Установка драйвера программатора

Программатор Mikron-Link (M-Link) / Start-Link использует чип FTDI. Windows может не установить правильный драйвер автоматически. Нужно заменить драйвер на WinUSB через утилиту Zadig:

  1. Скачайте Zadig: zadig.akeo.ie

  2. Подключите программатор по USB.

  3. Запустите Zadig от имени администратора. В меню Options включите List All Devices.

  4. Выберите ваш FTDI-адаптер в списке: Dual RS232-HS (Interface 1). Interface 0 не трогайте — он должен остаться обычным COM-портом.

  5. Выберите драйвер WinUSB и нажмите Replace Driver.

    Попробуйте различные версии Zadig. Свежие версии у меня не работали (просто вылетали при нажатии на кнопку Replace Driver. Рабочей версией оказалась 2.4.

Здесь у меня возникла проблема: установка стабильно завершалась ошибкой Driver Installation: FAILED (Other error). Причина оказалась в проверке цифровой подписи драйверов в Windows: Zadig ставит самоподписанный драйвер, а Windows его блокирует.

Решение — на время установки отключить проверку подписи драйверов:

  1. Win + I → Система → Восстановление → Расширенные параметры запуска → «Перезагрузить сейчас».

  2. В синем меню: Troubleshoot → Advanced options → Startup Settings → Restart.

  3. После перезагрузки появится пронумерованный список опций — выберите Disable driver signature enforcement (клавиша F7).

Компьютер загрузится в обычном режиме, но с отключенной проверкой подписи. После этого запускайте Zadig — установка WinUSB должна пройти без ошибок. Проверить успех просто: устройство Dual RS232-HS (Interface 1) должно пропасть из списка COM-портов в Диспетчере устройств.

Шаг 5. Настройка platformio.ini

В корне проекта нужен файл platformio.ini(Можно посмотреть его в одном из примеров официального репозитория) :

[env:mik32v2]
platform = MIK32
board = mik32v2
framework = framework-mik32v2-sdk
board_build.ldscript = eeprom

Если PlatformIO не находит платформу по имени (UnknownPackageError: Could not find the package with 'MIK32' requirements) - укажите платформу прямой git-ссылкой в platformio.ini вместо имени:

platform = https://github.com/MikronMIK32/platform-mik32.git

Параметр board_build.ldscript определяет, куда загружается прошивка:

  • eeprom — энергонезависимая, сохраняется после выключения

  • ram — быстрая загрузка для отладки, теряется при выключении

  • spifi — внешняя Flash-память, если есть на плате

Шаг 6. Скачиваем библиотеки

Заголовочные файлы с картой регистров, стартовый файл и линкер-скрипты лежат здесь — переписывать регистры вручную не нужно.

После инициализации проекта в появившейся папке .vscode откройте файл c_cpp_properties.json и добавьте путь до скачанных внешних библиотек в includePath.

Шаг 7. Компиляция и загрузка

Откройте палитру команд в VS Code (Ctrl+Shift+P) и выберите PlatformIO: Open PlatformIO Core CLI — это откроет терминал с уже активированным виртуальным окружением PlatformIO.

Подключите программатор к плате и к ПК по USB.

Компиляция:

pio run

После этой команды PlatformIO создаёт папку .pio, внутри в build/mik32v2/ будет firmware.hex.

Прошивка:

pio run -t upload

Если всё настроено правильно — в терминале появится SUCCESS.

Шаг 8. Отладка (Debug)

PlatformIO поддерживает пошаговую отладку через JTAG. Нажмите F5 или откройте панель Run and Debug слева в VS Code. Появится панель отладки, где можно ставить breakpoints, смотреть переменные и пошагово выполнять код.

Важный нюанс: у RISC-V ядра MIK32 всего 3 аппаратных триггера для breakpoint'ов (это видно в логе OpenOCD: Found 3 triggers). Один из них PlatformIO использует автоматически под временный breakpoint на вход в main() (tbreak main), и ещё один под внутренние нужды — то есть реально доступно не более одного breakpoint'а. Если поставить больше — получите ошибку Cannot insert hardware breakpoint: resource not available, и отладчик откажется продолжать выполнение.

Заключение

После выполнения всех 8-ми шаговых Вы успешно запустите свой первый код на отечественном МК. Пишите в комментариях, если у Вас возникают какие-то траблы в ходе алгоритма. Также приглашаю в свой ТГ канал — там больше материалов про embedded-разработку, AI и подобные вещи.