Как получить bin из arduino ide

Обновлено: 06.07.2024

Как загрузить Hex-файл в Arduino IDE, что это такое и как с ним работать - говорим сегодня в новой информационной статье. Тема выбрана не случайно, многие пользователи интересуются программным обеспечением на более «продвинутом2 уровне. При этом конечно же не всем хочется бегать за помощью к специалистам, листать многочисленные форумы и т.д. но выход есть – наша инструкция.

Прежде чем начать обсуждение по сути, небольшое отступление с пояснениями, что такое Hex-прошивка. Рассказываем: речь идет о скомпилированном файле, который загружается в плату Ардуино, но не является исходным кодом, как скетч. Иными словами, это простой способ распространения программ для изучаемой нами среды. Такие файлы часто имеют расширение *.hex – отсюда и название. Они просты в использовании, не требуют скачивания дополнительных библиотек, легко переносятся на другие девайсы.

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


  • Для начала откройте нужный вам скетч в среде разработки IDE.
  • Выберите в меню "Скетч" команду "Экспорт бинарного файла".

  • Дождитесь окончания компиляции - в папке со скетчами появятся 2 или больше hex-файла:
  1. Создаем папку под названием avrdude.
  2. Копируем в нее следующие файлы: avrdude.exe и libusb0.dll из C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и avrdude.conf из C:\Program Files (x86)\Arduino\hardware\tools\avr\etc
  3. Запускаем консоль cmd, переходим в папку с файлами, вводим:

Скорость выбираете согласно типу плат (Уно, Нано – можно 115200, для других, особенно китайских моделей – 57600, тут нужно экспериментировать).

Среди других приложений, которые советуют использовать, можем назвать: GC-Uploader (автоматическая заливка ПО), SinaProg (более профессиональный софт) и XLoader. Выбирайте оптимальный для себя вариант!

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Asoros

Задался я когда то давно этим вопросом, но однозначного ответа тогда не услышал, но через года задал мне этот вопрос коллега и я посыпался. Ответьте мне господа, возможно дамы. Можно ли извлечь скетч с ардуинки так как он был написан? Если да, то как?

Эдуард Анисимов

USBAsp - для считывания.
Дальше разбираться с Ассемблерным кодом или пройтись декомпилятором.
Но такой же смотрибельный, как изначально задумал автор, код не получить.

Arhat109

Ну .. ардуинка .. по ней ищется автор .. к нему в гости с паяльником .. и ву-а-ля, исходный скетч с комментами и даже несколько версий.

Эдуард Анисимов

Ну .. ардуинка .. по ней ищется автор .. к нему в гости с паяльником .. и ву-а-ля, исходный скетч с комментами и даже несколько версий.

stepko

Задался я когда то давно этим вопросом, но однозначного ответа тогда не услышал, но через года задал мне этот вопрос коллега и я посыпался. Ответьте мне господа, возможно дамы. Можно ли извлечь скетч с ардуинки так как он был написан? Если да, то как?

В загрузчике стоит защита от прочтение флеша, значит не сможешь так просто извлечь скетч из ардуинки

серёга73

Загрузчик легко считывается вместе с памятью контролера.
А скетча там нет.

Эдуард Анисимов

Ну да. Как в ардуину прошить короткую одноактную пьесу комедийного содержания с небольшим числом действующих лиц

Загрузчик легко считывается вместе с памятью контролера

PiratFox

@серёга73, если установлен фьюз защиты - тогда вообще ничего не считать.

серёга73

Интересно , а из ардуино иде компилятора как это сделать?

PiratFox

@серёга73, а никак. Ардуино иде без загрузчика в самой ардуине вообще ничего в неё писать не будет.

серёга73

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

ПС.
Тема старая , но просто заканчивается неверным изречением.

PiratFox

Ну да. Я вот только не помню про загрузчик, есть ли уже в нём защита чтения. Я с Ардуино иде не работаю, предпочитаю Atmel Studio.

Прошивка является популярным способом распространения программ для ардуино и микроконтроллеров.

Здесь описана процедура загрузки прошивки микроконтроллера платы Arduino.

Данная инструкция позволит вам установить прошивку на наиболее популярные платы такие как Nano, UNO, Leonardo, Mini, Pro Micro и другие, собранные на микроконтроллере atmega328p, atmega168, atmega32u4 и других.

О прошивках Arduino

Не стоит путать прошивку со скетчем!

Скетч – это исходный код прошивки.

Прошивка ардуино – это скомпилированный (бинарный) файл, загружаемый в плату Arduino (в микроконтроллер). Прошивка не является исходным кодом программы (скетча). Файл прошивки обычно имеет расширение HEX.

Преимущество прошивки – это простота ее использования:

  • Не нужны никакие библиотеки,
  • Легко загрузить и выгрузить,
  • Можно перенести с одного устройства на другое.

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

Вместе с прошивкой часто может поставляться и копия памяти ПЗУ (EEPROM), в которой хранятся данные, необходимые для работы устройства.

Способы прошивки Arduino

Существует несколько популярных программ загрузки прошивки на Arduino. Подавляющее большинство из них сделаны частными программистами, а многие из них давно уже заброшены и не поддерживаются, но по-прежнему существуют в сети и прекрасно работают.

Рассмотрим пару наиболее популярных программ прошивки.

XLoader

Самая простая и лаконичная программа, которая подойдет любому, кому просто надо загрузить hex на популярную Arduino.

Загрузка прошивки интуитивно понятна:

  • Выбираем…
    • файл прошивки
    • плату ардуино
    • COM-порт
    • Скорость передачи данных

    Последняя версия – 1.0.

    Не может загружать EEPROM.

    SinaProg

    SinaProg – это уже более профессиональная и универсальная программа, разработанная неизвестными иранскими программистами. Однако сразу надо сказать, что данная программа – не более чем графическая оболочка для утилиты AVRDude, о которой пойдет речь дальше.

    1. Выбираем файл прошивки
    2. Настраиваем программатор: выбираем…
    3. Arduino,
    4. Порт
    5. Скорость передачи

    Avrdude

    Большинство всех загрузчиков используют одну и ту же утилиту – AVRDude (AVR Downloader-Uploader), которая давно вошла во многие среды разработки для ардуино, в т.м. числе и в Arduino IDE.

    Это мощнейшая утилита для работы с чипами AVR, но все-таки это утилита командной строки, что многим неудобно.

    Загрузка HEX прошивки в Arduino

    Читайте в следующем параграфе как прошить ардуино и с его помощью.

    Последняя версия – 6.3.

    Arduino IDE, AVRDude

    Рассмотрим как загрузить прошивку, имея только Arduino IDE на компьютере с Windows.

    Напомню, что вместе с Arduino IDE ставится и AVRDude, с помощью которого мы и загрузим прошивку.

    Установка программного обеспечения

    • Установить программу Arduino IDE, если она не установлена
      • В ряде случаев потребуется установить дополнительный драйвер вашей платы (если плата – китайский клон). Драйвер нужен только в случае если вы не видите вашу плату в Arduino IDE.

      Подготовка

      • Подключить плату к компьютеру
      • Запустить Arduino IDE
      • Определить к какому порту подключена Arduino, через меню, как показано ниже:
      • Определите в какой папке установлена Arduino IDE

      Загрузка прошивки ардуино

      • Открываете командную строку и вводите следующую команду, предварительно скорректировав ее под свои условия:

      Обратите внимание на:

      • Путь к Arduino IDE ( желтым ),
      • Номер порта ( голубым ),
      • Скорость передачи данных ( зеленым )
      • Название (путь) файла прошивки ( фиолетовым )

      Если при выполнении команды вы увидите ошибку как ниже

      Ошибка avrdude, avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2

      , значит ваша плата не может работать со скоростью 115200, и необходимо установить скорость 57600.

      Нажмите CTRL+C, чтобы прервать процесс.

      Получение помощи

      Если у вас что-то не получилось, и вы являетесь нашим клиентом, обратитесь на страницу поддержки.

      Часто задаваемые вопросы о прошивке

      Какой COM-порт выбирать?

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

      Прежде всего, чтобы ардуино определялась, необходимо, чтобы на компьютере были установлены ее драйвера. Они ставятся вместе с Arduino IDE. Для китайских удешевлённых колонов может понадобится поставить драйвер CH340.

      Итак, драйвера установлены, теперь выберем правильный порт.

      Порт можно посмотреть в Arduino IDE…


      Выбор COM-порта в Arduino IDE

      … или, если вы на Windows, в диспетчере устройств:


      Определение COM-порта, к которому подключена Arduino через диспетчер устройств Windows.

      Однозначно, это не COM1. Поэтому, в моем случае это будет COM3.

      Какую скорость выбрать?

      Скорость передачи зависит от версии платы. Если мы говорим о популярных Nano или UNO, то скорость будет 115200. Однако, если вы имеете дело с китайский клоном, то, возможно, придется выбрать 57600.

      В общем, рецепт прост: если не получается с одной скоростью, тут же пробуете другую.

      5 Replies to “Как загрузить HEX прошивку Ардуино”

      Чем регулируется частота и амплитуда , Какой кабель нужен для прошивки Arduino nano ?

      Она вводится через последовательный порт, аналогично тому как загружается прошивка.
      Кабель нужен mini-USB data

      Некоторые проекты для Arduino распространяются не в виде файлов скетчей (*.ino), а в виде hex-файлов (*.hex). Я расскажу, как прошить такой файл в Arduino.

      Получение hex-файла

      Arduino Экспорт бинарного файла

      Как получить hex-файл для своего проекта или скачанного скетча? Для получения hex-файла, соответствующего требуемому скетчу, необходимо открыть этот скетч (например, bike.ino) в Arduino IDE (я использую версию 1.6.6) и выбрать в меню Скетч (Sketch) команду Экспорт бинарного файла (Export Compiled Binary):

      Arduino hex-файлы

      После этого происходит компиляция и в папке скетча появляются два hex-файла (для скетча bike.ino - bike.ino.eightanaloginputs.hex и bike.ino.with_bootloader.eightanaloginputs.hex):

      Hex-файл имеет текстовый формат и состоит из строк вида
      :100020000C94DF030C94DF030C94DF030C94DF03C8

      Arduino загрузчик

      Отличие этих двух файлов заключается в наличии в файле *.ino.with_bootloader.eightanaloginputs.hex загрузчика Arduino:

      Прошивка hex-файла

      Arduino номер порта

      Как же прошить имеющийся hex-файл? Сначала необходимо подключить прошиваемую плату (я использую Arduino Nano 3.0) к USB-порту компьютера и узнать COM-порт подключения. Номер порта можно посмотреть в Arduino IDE в меню Инструменты (Tools):

      Для прошивки hex-файла *.ino.eightanaloginputs.hex (для рассматриваемого скетча - bike.ino.eightanaloginputs.hex) в микроконтроллер платы Arduino используется программа AVRDude - AVR Downloader-Uploader, предназначенная для прошивки микроконтроллеров AVR.

      Arduino прошивка avrdude

      В результате в папке avrdude содержатся три файла:

      В эту же папку следует скопировать прошиваемый hex-файл (в рассматриваемом примере - файл bike.ino.eightanaloginputs.hex).

      avrdude версия

      В Arduino IDE версии 1.6.6 представлена программа avrdude версии 6.0.1

      avrdude команда

      Затем в консоли требуется ввести команду:

      -v : вывод подробной информации
      -patmega328p : указание типа микроконтроллера
      -c arduino : указание программатора - программатор, используемый Arduino IDE
      -P com11 : указание номера COM-порта (COM11)
      -b 57600 : указание скорости COM-порта (57600 бод)
      -D : не выполнять очистку FLASH-памяти микроконтроллера.
      -U flash:w:"bike.ino.eightanaloginputs.hex":i : w - запись flash - во FLASH-память i - файла в формате Intel Hex

      Arduino hex-файлы

      После ввода команды выполняется прошивка hex-файла в Arduino:

      Готово!

      Читайте также: