Как загрузить шестнадцатеричный файл в arduino uno?

У меня есть Rostock Max 3d с Arduino Uno в качестве контроллера. У OEM-производителя есть версия прошивки, которую я хотел бы загрузить, но она находится в шестнадцатеричном формате.

Я просмотрел всю Arduino IDE, но не нашел способа загрузить шестнадцатеричный файл в Arduino. Я попытался использовать AVRDUDE, но Arduino взаимодействует с моим ПК только тогда, когда я устанавливаю "Программатор" на AVRISP. Я загрузил другие коды для blink и hello_world, но не смог скомпилировать источник прошивки. Я надеялся, что смогу просто использовать шестнадцатеричный файл, включенный в пакет прошивки.

Моя ОС - Linux.

, 👍3

Обсуждение

Вы можете включить "Подробный вывод" в разделе Файл -> Настройки для загрузки кода. Arduino IDE также использует avrdude для загрузки своих скетчей - вы можете "украсть" команду, которую он использует, из этого подробного вывода. После этого просто отредактируйте команду, используемую IDE для указания на ваш шестнадцатеричный файл ., @towe

Я использую Xloader. http://www.hobbytronics.co.uk/arduino-xloader, @Martynas


4 ответа


2

Я рекомендую посмотреть файлы IDE arduino, расположенные по адресу "(путь установки)/hardware/arduino/avr/" (в любом случае, в Windows я должен предположить то же самое в Linux).

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


Открой и загляни внутрь ". boards.txt-и найдите соответствующие записи, начинающиеся с "uno".

Следующее открытие "platform.txt" ищу записи "tools.avrdude" (часть avrdude взята из boards.txt Запись "uno.upload.tool") и скопируйте в новый текстовый редактор значение "tools.avrdude.upload.pattern", которое вы можете заполнить позже.

С помощью скопированной команды замените следующее:

от platform.txt

  • "{cmd.path}" = "tools.avrdude.cmd.path"
  • "{config.path}" = "tools.avrdude.config.path"
  • "{upload.verbose}" = "tools.avrdude.upload.params.verbose"
  • "{upload.verify} = "tools.avrdude.upload.verify"

теперь из boards.txt

  • "{build.mcu}" = "uno.build.mcu"
  • "{upload.protocol} = "uno.upload.protocol
  • "{{serial.port}" = Ваш последовательный порт (согласно исследованию что-то вроде /dev/ttyS0)
  • "{upload.speed}" = "uno.upload.speed"
  • "{build.path}" и "{build.project_name} = путь к файлу, который вы пытаетесь загрузить

Итак, с учетом вышеизложенного, чтобы загрузить программу в Arduino uno, я бы использовал что-то вроде следующего в Windows:

предполагая, что путь установки был "C:\Arduino\"

"C:\Arduino\hardware\tools\avr\bin\avrdude.exe" "-CC:\Arduino\hardware\tools\avr\etc\avrdude.conf" -v -patmega328p -carduino "-PCOM1" -b115200 -D "-Uflash:w:C:\MyArduinoProject\build.hex:i"

для linux это может быть (я действительно не уверен):

предполагая, что путь установки был "/opt/Arduino/".

"/opt/Arduino/hardware/tools/avr/bin/avrdude" "-C/opt/Arduino/hardware/tools/avr/etc/avrdude.conf" -v -patmega328p -carduino "-P/dev/ttyS0" -b115200 -D "-Uflash:w:/usr/MyArduinoProject/build.hex:i"


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

,

3

Я использую автономный программатор, который загружает шестнадцатеричный файл с SD-карты через интерфейс ICSP.

,

1

Я думаю, что вы можете использовать это программное обеспечение http://www.mediafire.com/file/tx2l85gsdkpf5d4/HEXtoArduino_V1.0.0.zip/file

,

1

Я нашел окончательный ответ на этот вопрос.

  1. Запуск Arduino IDE
  2. К файлу...Предпочтения...
  3. Включите отображение подробного вывода во время загрузки: [X] (изображение 1 ниже)
  4. Загрузите скетч на Arduino Uno
  5. Я использовал образец скетча мигания и увидел следующее (изображение 2 ниже):

AVRDude: используется для загрузки

Вы хотите, чтобы эта первая строка была показана белым цветом-когда вы развернете ее, вы увидите, что это вся строка кода, которая используется для загрузки шестнадцатеричного файла вашей программы в Uno.

Вся команда на компьютере выглядит следующим образом:

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\<username>\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\<username>\dev\arduino\STK2UPDI\build\blink.ino.hex:i

Я собираюсь разбить это на несколько строк:

Во-первых, это полный путь к avrdude exe. Затем он передает аргумент-C с полным путем к файлу avrdude.conf

c:\longpath\avrdude -С C:\avrdude.conf

Затем куча параметров для правильной настройки avrdude: -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:

И, наконец, полный путь к шестнадцатеричному файлу, который вы хотите загрузить

c:\longpath\blink.ino.hex:i

Все, что вам нужно сделать

Все, что вам нужно сделать, это взять эту чрезвычайно длинную строку и заменить полный путь к шестнадцатеричному файлу на целевой шестнадцатеричный файл, а затем запустить всю команду, и вы увидите что-то вроде того, что показано на рисунке 3 ниже.

Изображение 1

verbose output

Изображение 2

upload info

Изображение 3 upload success

,

отлично, я это проверю. какую версию вы используете?, @j0h

использование Arduino IDE 1.8.15 , @raddevus