Добавляем нормальную поддержку JLink в Arduino IDE

В данный момент (21.02.2020) в Arduino IDE поддержка JLink программатора реализовано достаточно кривым методом, через Zadig. Да, после этого JLink начинает работать в Arduino IDE, но при этом он отваливается от всего остального (Keil, SEGGER Studio и т.п.) и это не есть хорошо.

Попробуем исправить ситуацию. Для этого нам как всегда понадобиться напильник и:

  • Скачать и установить с сайта Нордика пакет программ - nRF Command Line Tools.. Добавить в переменную Path - Система->Дополнительные параметры системы->Переменные среды->Path->Изменить, путь к файлу nrfjprog.exe (если это уже не произошло при установке).

  • Добавить в конец файла platform.txt фреймворка arduino-nRF5 следующий текст:

Для версии Arduino IDE 1.8.8

#jlink upload
tools.jlink_upload.cmd=jlink_upload
tools.jlink_upload.cmd.windows=jlink_upload.bat
tools.jlink_upload.path={runtime.hardware.path}/0.6.0/tools/win
tools.jlink_upload.upload.params.verbose=-d
tools.jlink_upload.upload.params.quiet=n
tools.jlink_upload.upload.pattern="{path}/{cmd}" "{upload.target}" "{build.path}/{build.project_name}.hex"

Для версии Arduino IDE 1.8.12

#jlink upload
tools.jlink_upload.cmd=jlink_upload
tools.jlink_upload.cmd.windows=jlink_upload.bat
tools.jlink_upload.path={runtime.hardware.path}/0.6.0/tools/win
tools.jlink_upload.program.params.quiet=n
tools.jlink_upload.program.params.verbose=-d
tools.jlink_upload.program.pattern="{path}/{cmd}" "{upload.target}" "{build.path}/{build.project_name}.hex"

В файле programmers.txt меняем одну строку:

jlink.name=J-Link
jlink.communication=USB
jlink.protocol=jlink
jlink.program.protocol=jlink
#jlink.program.tool=openocd
jlink.program.tool=jlink_upload
jlink.program.setup_command=transport select swd; set WORKAREASIZE 0;
  • В файле boards.txt того же фреймворка, для своей платы внести аналогичные изменения:

    Generic_nRF52840.upload.tool=jlink_upload
    Generic_nRF52840.upload.protocol=jlink
    Generic_nRF52840.upload.target=nrf52
    Generic_nRF52840.upload.maximum_size=1048576

  • В директории фреймворка создаём папки arduino-nRF5/tools/win.
  • В директории /win/ создаём файл jlink-upload.bat со следующим содержанием:
      nrfjprog -f %1 --program %2 --chiperase -r
    
  • Запускаем Arduino IDE и радуемся. :)

Данная статья написана для Телеграм канала https://t.me/mysensors и группы https://t.me/mysensors_rus. Публикация данной статьи на других ресурсах разрешается только при указании первоисточника!

Dab0G.

Written on February 21, 2020