Как получить файл прошивки (hex) из файла .ino, содержащего код

В настоящее время у меня есть файл прошивки .ino, который я использую в Arduino IDE для программирования микроконтроллера ATmega328. Я хотел бы получить файл, который Arduino IDE использует для программирования микроконтроллера.

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

Как я могу получить этот файл, поскольку единственным файлом, который генерирует IDE, является файл .ino?

, 👍6

Обсуждение

Ответы на эти вопросы уже были даны здесь., @Chris Stratton

@ChrisStratton Я удалил свой вопрос (не знал, что вы написали) ... если на вопрос уже дан ответ, он должен быть помечен как дублирующий вопрос (ы)., @Michel Keijzers

Я получаю .Файл BIN при использовании описанного выше метода в Arduino IDE., @Akash Agarwal

Я думаю, это не позволяет добавить еще один ответ. Один из подходов-использовать "Экспорт скомпилированного двоичного файла", указанный в ответах. Вы также можете отправить сборку в более предсказуемую (не временную) папку/каталог. Отредактируйте свой preferences.txt file и добавьте строку build.path=<folder for build output>, указав существующую папку для отправки артефактов сборки. Ваши шестнадцатеричные файлы будут там при следующей проверке/сборке, которую вы запустите., @RufusVS


3 ответа


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

8

В настройках Arduino IDE; после Show verbose output during: установите флажок рядом с compilation.

Затем, когда вы компилируете, вы должны получить что-то вроде этого в нижней части окна:

...
...
"/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avr-objcopy" -O ihex -R .eeprom  "/var/folders/tp/grrlc56j3z7057f12_7f1_0r0000gn/T/arduino_build_635063/Blink.ino.elf" "/var/folders/tp/grrlc56j3z7057f12_7f1_0r0000gn/T/arduino_build_635063/Blink.ino.hex"
Sketch uses 928 bytes (3%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.

В конце третьей строки снизу вы получите шестнадцатеричное имя файла . В этом случае (на OSX) это будет /var/folders/tp/grrlc56j3z7057f12_7f1_0r0000gn/T/arduino_build_635063/Blink.ino.hex

,

Идеально, это мне было нужно. Теперь, если я отправлю через последовательный файл this .hex на микроконтроллер, он будет работать как ЗАГРУЗКА IDE?, @Eduardo Cardoso

Установите флажок рядом с ним, чтобы получить подробный вывод при загрузке. Вы можете увидеть команду, которую IDE использует для загрузки. Просто намек. Для этого он использует программу командной строки avrdude., @Gerben


6

Самый простой способ получить файл:

  1. Скетч > Экспорт скомпилированного двоичного файла
  2. Дождитесь завершения процесса компиляции
  3. Скетч > Показать папку скетча

В папке sketch вы найдете дополнительный файл, который в данном случае будет иметь расширение .hex. Это скомпилированный файл, который обычно загружается на плату Arduino через Sketch > Upload.

Обратите внимание, что функция "Экспорт скомпилированного двоичного файла" доступна только в Arduino IDE 1.6.5 и новее.

,

9

Вы спрашиваете, как найти скомпилированный шестнадцатеричный файл. Это очень просто! Выполните следующие действия:

  1. В Arduino IDE выберите Sketch > Export Compiled Binary. Это выполняет компиляцию. После завершения этой команды копия скомпилированного шестнадцатеричного файла помещается в каталог вашего скетча .
    Export Compiled Binary
  2. Затем перейдите в папку sketch или в IDE выберите Sketch > Show Sketch Folder.
    Show Sketch Folder

Это генерирует два шестнадцатеричных файла для целевого микроконтроллера: один с загрузчиком и один без загрузчика. Эти шестнадцатеричные файлы могут быть загружены на микроконтроллер с помощью программатора, такого как Atmel Ice или AVRISPmkII.

,

Он помещает файлы .bin только в папку sketch., @Maarten Wolzak