Pull to refresh

Руководство по началу работы с отладочной платой MIK32-DIP (K1948ВК018, Амур) в ОС GNU/Linux

Level of difficultyMedium
Reading time4 min
Views3.9K

MIK32 АМУР или K1948ВК018 является российским микроконтроллером (МК) с ядром на открытой архитектуре RISC‑V. По какой‑то причине производитель МК ГК «Микрон» предлагает в качестве средства разработки,‑ средство на базе Eclipse, но исключительно под Windows, что далеко не всех устраивает. А также, в руководстве по эксплуатации на данный МК, предлагается использовать VS Code, и это конечно более универсальный (кроссплатформеный) вариант, но предполагает использование VS Code совместно с плагином PlatformIO, что опять же устраивает далеко не всех. Поэтому я рассмотрю в данном руководстве старт работы с отладочной платой MIK32-DIP в ОС GNU/Linux и IDE Eclipse.

Чтобы начать работу вам понадобятся:

  • отладочная плата MIK32-DIP (на фото справа), которую вы можете приобрести на ozon;

  • JTAG-отладчик, подойдут многие, но я использую FT2232HL (на фото слева), который можно найти на aliexpress и он не требует правки m-link.cfg в дальнейшем;

  • провода для соединения JTAG-отладчика и MIK32-DIP;

  • ПК с ОС GNU/Linux (на момент написания руководства я использовал ОС Linux Mint 21.3 Virginia).

Начало работы с отладочной платой MIK32-DIP в ОС Linux предполагает следующие этапы:

  1. Установка IDE Eclipse

  2. Установка nvm и xpm

  3. Установка toolchain

  4. Установка openocd

  5. Перенос базового проекта MIK32 (template) в IDE Eclipse

  6. Подключение инструментария отладки к проекту

  7. Физическое соедниение отладочной платы c JTAG-адаптером, подключение питания и UART-адаптера (в данной статье рассматриваться не будет)

1 Установка IDE Eclipse

Cкачайте Eclipse IDE for C/C++ Developers версию для Linux. Это будет архив x-y-z.tar.gz, который можно распаковать в любое понравившееся место, например, в домашний каталог, командой:

$ tar -C ~ -xf eclipse-cpp-2024-12-R-linux-gtk-x86_64.tar.gz

Результатом выполнения команды станет появления в домашнем каталоге другого каталога с именем eclipse, из которого через терминал можно запустить одноименный IDE командой:

$ ~/eclipse/eclipse

По умолчанию, IDE Eclipse предлагает в качестве рабочего пространства проектов каталог ~/eclipse-workspace.

Установите дополнительно плагин «Eclipse Embedded C/C++ 6.6.1» для чего: вызовите пункт меню «Help/Eclipse Marketplace»; задайте в строке поиска ключевую фразу «embedded» и нажмите «Enter». В результате поиска, первым в списке найденных будет искомый плагин, нажмите «Install» и следуйте согласно интерактивной инструкции. 

2 Установка nvm и xpm

nvm и xpm это инструментальные средства необходимые чтобы в дальнейшем установить требуемый toolchain. Для установки необходимо выполнить следующий набор команд в терминале:

$ wget -q -O - https://raw.githubusercontent.com/xpack/assets/master/scripts/install-nvm-node-npm-xpm.sh | ${SHELL}
$ export NVM_DIR="$HOME/.nvm"
$ source "$NVM_DIR/nvm.sh"
$ npm install --location=global xpm@latest

3 Установка toolchain

Установка toolchain осуществляется командой:

$ xpm install @xpack-dev-tools/riscv-none-elf-gcc@13.3.0-2.1 --global --force

4 Установка openocd

Можно воспользоваться openocd для проекта raspberrypi. Сборка и установка из исходного кода выполняется следующими командами в терминале:

$ git clone https://github.com/raspberrypi/openocd.git
$ cd openocd
$ ./bootstrap
$ ./configure --enable-ftdi --disable-werror
$ make -j4
$ sudo make install

5 Перенос базового проекта MIK32 (template) в IDE Eclipse

Скачайте с сайта производителя средства разработки:  https://files.mik32.ru/eclipse/mik32-ide-v1-1.zip

Откройте или распакуйте архив так, чтобы скопировать каталоги архива /mik32-ide_edit/workspace/MIK32_SRC и /mik32-ide_edit/workspace/template  в рабочее пространство IDE Eclipse, то есть каталог ~/eclipse-worspace (если используется каталог по умолчанию).

Переименуйте каталог template в название проекта, например, hello_mik32. А внутри каталога в файл .project также измените строку <name>template</name> на <name>hello_mik32</name>.

Откройте проект в IDE Eclipse через пункт меню «File/Open ProjectsFrom File Systems...». Если проект не отобразился как открытый вызовите пункт меню «Window/Show View/C/C++ Projects».

Войдите в настройки проекта (Properties) через контекстное меню и раскройте пункт «C/C++ Build». Выберите «Settings» и перейдите на вкладку «Toolchains» в поле ввода  «Name» в ниспадающем списке выберите установленный ранее toolchain: «xPack GNU RISC-V Embedded GCC (riscv-none-elf-gcc)» и нажмите «Apply and Close». Примечание: иногда стрелочку вниз для ниспадающего списка «Name» не видно, чтобы её увидеть нужно растянуть окно вправо.

После этого проект должен будет собираться.

Если инструмент не доступен, то есть система компилятор не находит, то необходимо через меню «Window/Preferences» настроить пункты: «Global RISC-V Toolchains Paths» и «Workspace RISC-V Toolchains Paths», установив для них в качестве инструмента по умолчанию «xPack GNU RISC-V Embedded GCC (riscv-none-elf-gcc)» и нажав для соотвествующего инструмента кнопку «XPack...». После нажатия для установленного в системе toolchain автоматически подставляется каталог его установки, например: /home/username/.local/xPacks/@xpack-dev-tools/riscv-none-elf-gcc/13.3.0-2.1/.content/bin

Каталог и инструментарий также можно установить и настроить в ручную, заполнив соотвествующие поля ввода.

6 Подключение отладки к проекту

В открытом проекте, выберите в ниспадающий меню рядом с «жучком» (на картинке ниже) пункт «Debug Configurations». Нажмите два раза на пукт «GDB OpenOCD Debugging». В поле ввода «Executable path:» напишите только openocd.

В поле ввода «Config options:» добавьте строку:

-s tcl -f ../MIK32_SRC/scripts/m-link.cfg -f ../MIK32_SRC/scripts/mik32.cfg -c "adapter speed 500"

Нажмите «Apply» и перейдите на вкладку «Main».

Во вкладке «Main», в строке ввода «C/C++ Application:» введите или выберите через кнопку «Browse...» путь к отлаживаемому файлу, например: /home/username/eclipse-workspace/hello_mik32/Debug RAM/hello_mik32.elf

 Для успешной отладки вы также должны правильно подключить JTAG (что в этой статье, как и говорил ранее, приводить не буду) и установить конктакт B0 перемычкой в состояние логической единицы («1»), что говорит первичной загрузке кода из RAM.

 Если вы все сделали правильно, то войдёте в отладочной режим, но у вас не будет мигать светодиод, как ожидалось бы. Для того чтобы светодиод мигал нужно исправить код:

#define PIN_LED 7

заменить на

#define PIN_LED 3

А в функциях configGPIO и blink следует заменить GPIO_2 на GPIO_0.

Успешной вам разработки под MIK32. Спасибо.

Как это выглядит на самом деле
Как это выглядит на самом деле

Tags:
Hubs:
Total votes 14: ↑13 and ↓1+16
Comments14

Articles