Как получить файл прошивки (hex) из файла .ino, содержащего код
В настоящее время у меня есть файл прошивки .ino, который я использую в Arduino IDE для программирования микроконтроллера ATmega328. Я хотел бы получить файл, который Arduino IDE использует для программирования микроконтроллера.
Вероятно, IDE использует шестнадцатеричный (шестнадцатеричный) файл или что-то в этом роде и отправляет его на микроконтроллер через последовательный порт.
Как я могу получить этот файл, поскольку единственным файлом, который генерирует IDE, является файл .ino
?
@Eduardo Cardoso, 👍6
Обсуждение3 ответа
Лучший ответ:
В настройках 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
Самый простой способ получить файл:
- Скетч > Экспорт скомпилированного двоичного файла
- Дождитесь завершения процесса компиляции
- Скетч > Показать папку скетча
В папке sketch вы найдете дополнительный файл, который в данном случае будет иметь расширение .hex. Это скомпилированный файл, который обычно загружается на плату Arduino через Sketch > Upload.
Обратите внимание, что функция "Экспорт скомпилированного двоичного файла" доступна только в Arduino IDE 1.6.5 и новее.
Вы спрашиваете, как найти скомпилированный шестнадцатеричный файл. Это очень просто! Выполните следующие действия:
- В Arduino IDE выберите
Sketch
>Export Compiled Binary
. Это выполняет компиляцию. После завершения этой команды копия скомпилированногошестнадцатеричного
файла помещается в каталог вашего скетча .
- Затем перейдите в папку sketch или в IDE выберите
Sketch
>Show Sketch Folder
.
Это генерирует два шестнадцатеричных файла для целевого микроконтроллера: один с загрузчиком и один без загрузчика. Эти шестнадцатеричные файлы могут быть загружены на микроконтроллер с помощью программатора, такого как Atmel Ice или AVRISPmkII.
Он помещает файлы .bin только в папку sketch., @Maarten Wolzak
- 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]
Ответы на эти вопросы уже были даны здесь., @Chris Stratton
@ChrisStratton Я удалил свой вопрос (не знал, что вы написали) ... если на вопрос уже дан ответ, он должен быть помечен как дублирующий вопрос (ы)., @Michel Keijzers
Я получаю .Файл BIN при использовании описанного выше метода в Arduino IDE., @Akash Agarwal
Я думаю, это не позволяет добавить еще один ответ. Один из подходов-использовать "Экспорт скомпилированного двоичного файла", указанный в ответах. Вы также можете отправить сборку в более предсказуемую (не временную) папку/каталог. Отредактируйте свой
preferences.txt
file и добавьте строкуbuild.path=<folder for build output>
, указав существующую папку для отправки артефактов сборки. Ваши шестнадцатеричные файлы будут там при следующей проверке/сборке, которую вы запустите., @RufusVS