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)
Шаг 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 — её нужно установить вручную.
-
Перейдите на страницу релизов: github.com/MikronMIK32/mik32-platformio/releases
-
Скачайте архив последней версии (например,
mik32-platformio-0.5.0.zip). -
Распакуйте архив. Внутри будут папки
packagesиplatforms. -
Слейте содержимое этих папок с директорией PlatformIO. На Windows путь:
C:\Users\ВАШ_ПОЛЬЗОВАТЕЛЬ\.platformio\ -
Перезапустите VS Code.
Шаг 4. Установка драйвера программатора
Программатор Mikron-Link (M-Link) / Start-Link использует чип FTDI. Windows может не установить правильный драйвер автоматически. Нужно заменить драйвер на WinUSB через утилиту Zadig:
-
Скачайте Zadig: zadig.akeo.ie
-
Подключите программатор по USB.
-
Запустите Zadig от имени администратора. В меню
OptionsвключитеList All Devices. -
Выберите ваш FTDI-адаптер в списке:
Dual RS232-HS (Interface 1). Interface 0 не трогайте — он должен остаться обычным COM-портом. -
Выберите драйвер
WinUSBи нажмитеReplace Driver.Попробуйте различные версии Zadig. Свежие версии у меня не работали (просто вылетали при нажатии на кнопку
Replace Driver. Рабочей версией оказалась 2.4.
Здесь у меня возникла проблема: установка стабильно завершалась ошибкой Driver Installation: FAILED (Other error). Причина оказалась в проверке цифровой подписи драйверов в Windows: Zadig ставит самоподписанный драйвер, а Windows его блокирует.
Решение — на время установки отключить проверку подписи драйверов:
-
Win + I→ Система → Восстановление → Расширенные параметры запуска → «Перезагрузить сейчас». -
В синем меню:
Troubleshoot → Advanced options → Startup Settings → Restart. -
После перезагрузки появится пронумерованный список опций — выберите
Disable driver signature enforcement(клавиша F7).
Компьютер загрузится в обычном режиме, но с отключенной проверкой подписи. После этого запускайте Zadig — установка WinUSB должна пройти без ошибок. Проверить успех просто: устройство Dual RS232-HS (Interface 1) должно пропасть из списка COM-портов в Диспетчере устройств.
Шаг 5. Настройка platformio.ini
В корне проекта нужен файл platformio.ini(Можно посмотреть его в одном из примеров официального репозитория) :
[env:mik32v2]platform = MIK32board = mik32v2framework = framework-mik32v2-sdkboard_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 и подобные вещи.
ссылка на оригинал статьи https://habr.com/ru/articles/1056514/