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
Спасибо!
@bigjosh, 👍4
3 ответа
Лучший ответ:
Если вы не установите протокол
в 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);
}
Пользовательские инструменты для процесса сборки Arduino описаны в спецификации Boards Manager Package Index здесь...
https://github.com /arduino/Arduino/wiki/Arduino-IDE-1.6.x-package_index.json-format-specification#tools-definitions
Таким образом, кажется, что я не могу использовать пользовательские инструменты с установленной вручную платой, так как нет индексного файла пакета.
От 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
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
Эта проблема, по-видимому, не ограничивается только пользовательскими инструментами, она также возникает со встроенными инструментами, такими как
avrdude
. :/, @bigjosh