upload.tool не используется в пользовательском файле boards.txt?

Я создал пользовательскую плату в файле boards.txt и изменил upload.tool на бессмысленное значение, но когда я выполняю загрузку, IDE по-прежнему вызывает avrdude.

Например, в файле boards.txt я изменил строку...

tile.upload.tool=avrdude

...к...

tile.upload.tool=nogood

...и добавил эти строки в файл platform.txt...

# NOGOOD programmer

tools.nogood.cmd="dir"
tools.nogood.program.pattern="dir" 
tools.nogood.upload.pattern="dir" 

...и перезагрузил IDE и нажал "Загрузить".. и он по-прежнему работает с AVRDUDE.

(Обратите внимание, что мой идентификатор платы - tile)

Я убедился, что редактирую правильный файл boards.txt, изменив ключ cores на nogood, и это действительно вызывает ошибку.

Разве boardid.upload.tool не подходит для изменения рецепта, вызываемого при загрузке?

Как и где ключ boardid.upload.tool=toolname в файле boards.txt сопоставляется с ключом tools.toolname.upload.pattern в файле platform.txt ?

Я использую Arduino IDE версии 1.8.3.

Пользовательский файл boards.txt находится в каталоге Arduino\hardware\Move38\avr.

Этот полный пакет пользовательской платформы находится здесь...

https://github.com/bigjosh/Move38-Arduino-Platform

Спасибо!

, 👍4


3 ответа


Лучший ответ:

0

Если вы не установите протокол в boards.txt, текущая версия Ardunio IDE (1.8.12) будет использовать программу , а не рецепт upload в platform.txt. Рецепт program может использовать клавишу {protocol} для выбора программиста в меню IDE.

Соответствующий источник в Arduino IDE SerialUploader.java...

if (usingProgrammer || prefs.get("upload.protocol") == null) {
  return uploadUsingProgrammer(buildPath, className);
}
,

2

Пользовательские инструменты для процесса сборки Arduino описаны в спецификации Boards Manager Package Index здесь...

https://github.com /arduino/Arduino/wiki/Arduino-IDE-1.6.x-package_index.json-format-specification#tools-definitions

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

,

Эта проблема, по-видимому, не ограничивается только пользовательскими инструментами, она также возникает со встроенными инструментами, такими как avrdude. :/, @bigjosh


4

От https://github.com/bigjosh/Move38-Arduino-Platform#programmers:

Поскольку в тайле нет загрузчика, весь код должен быть запрограммирован, а не загружен.

Когда вы выполняете "Загрузку с помощью Programmer", инструмент указывается в свойстве {programmerID}.program.tool в файлеprogramrs.txt. Значение {boardID}.upload.tool используется только для стандартной загрузки.

Поскольку Programmers.txt отсутствует в вашем аппаратном пакете, это делает его очень неудобным для настройки. Что еще хуже, для «Загрузки с помощью программатора» используется файл platform.txt, связанный с выбранным программатором, а не файл в вашем аппаратном пакете. По этой причине некоторые популярные аппаратные пакеты содержат собственные копии всех стандартных программ. рупий Недостатком этого является то, что он действительно загромождает меню Инструменты > Программатор, если у вас установлено несколько таких пакетов.

,

угг. Так некрасиво. Спасибо за авторитетный ответ - их трудно найти в стране Arduino! :), @bigjosh

Для будущих наблюдателей не похоже, что {boardID}.upload.tool в platform.txt *всегда* используется для стандартной загрузки. Например, кажется, что он не используется, если в файле boards.txt не указана upload.speed (даже если указанный инструмент не имеет скорости передачи данных). Он также иногда не используется в OSX., @bigjosh