Перейти к основному содержимому

Работа с платами ELBEAR в PlatformIO

Установка​

Компания Микрон предоставляет библиотеки и инструменты, позволяющие работать с микроконтроллером MIK32 АМУР в редакторе Visual Studio Code через плагин PlatformIO. Процесс установки плагина и необходимых пакетов описан в wiki компании Микрон:

к сведению

Ссылки на ресурсы компании Микрон актуальны на ноябрь 2025 года. Если ссылки недействительны, необходимо найти актуальные ссылки на официальном сайте компании Микрон.

Создание нового проекта​

примечание

При создании проекта и дальнейшей работе с ним необходимо удостовериться, что в настройках проекта (в файле platformio.ini) и при выборе активного проекта (при создании/открытии каждого нового проекта) везде, где указана версия контроллера mik32v_, выбрана версия v2 (mik32v2), а не v0.

Для создания нового проекта:

  • Открыть VS Code, в боковой панели перейти на вкладку PlatformIO.
  • Выбрать Quick Access -> PIO Home -> Open. Откроется вкладка PIO Home.
  • На вкладке PIO Home нажать кнопку New Project. В диалоговом окне ввести название проекта, в графе Board выбрать MIK32V2 Generic Board (Mikron). Содержимое графы Framework должно заполниться автоматически после выбора платы. При необходимости можно выбрать расположение для сохранения проекта в графе Location.
  • В созданном проекте открыть файл platformio.ini и убедиться, что везде указана версия v2, а не v0.
  • В файле platformio.ini задать параметр линковщика board_build.ldscript в соответствии с областью памяти, для которой пишется программа. Для памяти EEPROM указать eeprom, для RAM памяти - ram, для SPIFI FLASH - spifi. Проект будет собран и записан в указанную область памяти (при использовании программатора для загрузки программ). Например:
    board_build.ldscript = spifi
  • В нижнем меню быстрого доступа найти кнопку Switch PlatformIO Project Environment, нажать ее и выбрать созданный проект в качестве активного.
  • Для добавления файлов в боковой панели выбрать Проводник, раскрыть содержимое проекта, нажать правой кнопкой мыши на папку, в которую необходимо добавить файл, и выбрать Создать файл. Ввести название файла вместе с расширением, например, main.c.
  • В созданный файл добавить необходимый код.
  • Для сборки проекта нажать кнопку PlatformIO: Build в нижнем меню быстрого доступа.

Пример файла main.c, реализующий моргание пользовательским светодиодом:

#include <mik32_memory_map.h>
#include <pad_config.h>
#include <gpio.h>
#include <power_manager.h>
#include <wakeup.h>

// Вывод, к которому подключен светодиод - PORT_2_7
#define PIN_LED 7

void InitClock()
{
// Включение тактирования GPIO
PM->CLK_APB_P_SET |= PM_CLOCK_APB_P_UART_0_M | PM_CLOCK_APB_P_GPIO_0_M | PM_CLOCK_APB_P_GPIO_1_M | PM_CLOCK_APB_P_GPIO_2_M;
// Включение тактирования блока для смены режима выводов
PM->CLK_APB_M_SET |= PM_CLOCK_APB_M_PAD_CONFIG_M | PM_CLOCK_APB_M_WU_M | PM_CLOCK_APB_M_PM_M;
}
void ledBlink()
{
// Инвертирование вывода
GPIO_2->OUTPUT ^= 1 << PIN_LED;
// Задержка
for (volatile int i = 0; i < 500000; i++)
;
}
int main()
{
// Включение тактирования GPIO
InitClock();
// Установка вывода 7 порта 2 в режим GPIO
PAD_CONFIG->PORT_2_CFG &= ~(0b11 << (2 * PIN_LED));
// Установка направления вывода 7 порта 2 на выход
GPIO_2->DIRECTION_OUT = 1 << PIN_LED;

while (1)
{
// Моргание светодиода
ledBlink();
}
}

Загрузка прошивки в микроконтроллер​

Для загрузки созданного в PlatformIO проекта необходимо:

  • подключить программатор ELJTAG к ПК. При подключении программатора к ПК через USB-хаб могут возникнуть проблемы в работе. Рекомендуется подключать ELJTAG напрямую к ПК.
  • подключить плату ELBEAR к программатору через выведенный на плату разъем. На плате ACE-UNO расположение ключа шлейфа от программатора обозначено белой полосой, а на плате ACE-NANO - надписью ELRON.
  • собрать проект в PlatformIO (PlatformIO: Build).
  • нажать кнопку загрузки PlatformIO: Upload в нижнем меню быстрого доступа.

Запуск отладки программы​

Для отладки программы необходимо использовать программатор ELJTAG.
Последовательность действий:

  • подготовить и собрать программу, которую необходимо запускать в режиме отладки.
  • подключить плату ELBEAR к ПК через программатор ELJTAG.
  • загрузить подготовленную программу на плату.
  • открыть PlatformIO в боковой панели и в разделе Debug нажать Start Debugging. Откроется боковая панель управления отладкой.
  • в панели управления отладкой в окне RUN AND DEBUG выбрать PIO Debug и нажать на кнопку запуска отладки. Процесс отладки должен начаться, а сверху появится панель управления отладкой.
примечание

Для микроконтроллера Амур при отладке доступно всего две точки останова.

Добавление поддержки загрузки программ по USB-UART​

внимание

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

Компания Микрон предоставляет инструменты, которые по умолчанию предполагают загрузку прошивки на платы ELBEAR через программатор. Для добавления поддержки загрузки программ при подключении платы к ПК по USB необходимо выполнить следующие действия:

  1. Загрузить на ПК последний релиз скрипта программирования elbear uploader. Загруженный пакет необходимо разархивировать.
  2. Открыть существующий проект в PlatformIO или создать новый.
  3. Найти файл platformio.ini и открыть его для редактирования. Изначально после установки инструментов от Микрон содержимое файла должно быть подобным:
    [env:mik32v2]
    platform = MIK32
    board = mik32v2
    framework = framework-mik32v2-sdk
  4. Добавить в platformio.ini параметр линковщика, указывающий сборку под SPIFI Flash-память:
    board_build.ldscript = spifi
  5. Добавить в файл platformio.ini флаг, указывающий, что будет использоваться сторонний инструмент для загрузки программы, а также команду для запуска скачанного скрипта программирования elbear uploader:
    upload_protocol = custom
    upload_command = полный_путь\elbear_uploader.exe .pio\build\mik32v2\firmware.hex --com=COM3
    В команде необходимо указать полный путь до исполняемого файла скрипта программирования, путь до загружаемого hex-файла (по умолчанию это .pio\build\mik32v2\firmware.hex), а также корректный номер COM порта, к которому подключена плата ELBEAR.
  6. Сохранить изменения и закрыть файл platformio.ini. После редактирования содержимое файла должно быть подобным:
    [env:mik32v2]
    platform = MIK32
    board = mik32v2
    framework = framework-mik32v2-sdk
    board_build.ldscript = spifi
    upload_protocol = custom
    upload_command = "C:\Users\user\elbear_uploader\elbear_uploader.exe" .pio\build\mik32v2\firmware.hex --com=COM14
    Теперь в текущем проекте при нажатии кнопки загрузки программы, если COM порт указан верно, загрузка будет производиться по интерфейсу USB-UART, и плату можно будет использовать без программатора.
внимание

Описанные изменения распространяются только на текущий проект с текущим файлом platformio.ini. При создании нового или открытии другого проекта необходимо внести все вышеперечисленные изменения в файл platformio.ini нового проекта.

примечание

Проверено на PlatformIO IDE версии 3.3.4, Core версии 6.1.18.

Использование проектов-примеров​

Компания Микрон в репозитории gitflic предоставляет набор примеров на базе PlatformIO, с помощью которых можно протестировать микроконтроллер MIK32.

Для работы с примером:

  • открыть папку интересующего примера в VS Code,
  • выбрать открытый проект в качестве активного для версии mik32v2 через кнопку Switch PlatformIO Project Environment на нижней панели,
  • при необходимости изменить номера используемых в программе выводов в соответствии с подключением на вашей плате,
  • собрать проект и загрузить прошивку в микроконтроллер.