Как получить bin из arduino ide
Как загрузить Hex-файл в Arduino IDE, что это такое и как с ним работать - говорим сегодня в новой информационной статье. Тема выбрана не случайно, многие пользователи интересуются программным обеспечением на более «продвинутом2 уровне. При этом конечно же не всем хочется бегать за помощью к специалистам, листать многочисленные форумы и т.д. но выход есть – наша инструкция.
Прежде чем начать обсуждение по сути, небольшое отступление с пояснениями, что такое Hex-прошивка. Рассказываем: речь идет о скомпилированном файле, который загружается в плату Ардуино, но не является исходным кодом, как скетч. Иными словами, это простой способ распространения программ для изучаемой нами среды. Такие файлы часто имеют расширение *.hex – отсюда и название. Они просты в использовании, не требуют скачивания дополнительных библиотек, легко переносятся на другие девайсы.
Важный момент! В этой прошивке отсутствует возможность получения читаемого исходного кода для внесения пользователями коррекций.
- Для начала откройте нужный вам скетч в среде разработки IDE.
- Выберите в меню "Скетч" команду "Экспорт бинарного файла".
- Дождитесь окончания компиляции - в папке со скетчами появятся 2 или больше hex-файла:
- Создаем папку под названием avrdude.
- Копируем в нее следующие файлы: avrdude.exe и libusb0.dll из C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и avrdude.conf из C:\Program Files (x86)\Arduino\hardware\tools\avr\etc
- Запускаем консоль 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, о которой пойдет речь дальше.
- Выбираем файл прошивки
- Настраиваем программатор: выбираем…
- Arduino,
- Порт
- Скорость передачи
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-файла
Как получить hex-файл для своего проекта или скачанного скетча? Для получения hex-файла, соответствующего требуемому скетчу, необходимо открыть этот скетч (например, bike.ino) в Arduino IDE (я использую версию 1.6.6) и выбрать в меню Скетч (Sketch) команду Экспорт бинарного файла (Export Compiled Binary):
После этого происходит компиляция и в папке скетча появляются два hex-файла (для скетча bike.ino - bike.ino.eightanaloginputs.hex и bike.ino.with_bootloader.eightanaloginputs.hex):
Hex-файл имеет текстовый формат и состоит из строк вида
:100020000C94DF030C94DF030C94DF030C94DF03C8Отличие этих двух файлов заключается в наличии в файле *.ino.with_bootloader.eightanaloginputs.hex загрузчика Arduino:
Прошивка hex-файла
Как же прошить имеющийся hex-файл? Сначала необходимо подключить прошиваемую плату (я использую Arduino Nano 3.0) к USB-порту компьютера и узнать COM-порт подключения. Номер порта можно посмотреть в Arduino IDE в меню Инструменты (Tools):
Для прошивки hex-файла *.ino.eightanaloginputs.hex (для рассматриваемого скетча - bike.ino.eightanaloginputs.hex) в микроконтроллер платы Arduino используется программа AVRDude - AVR Downloader-Uploader, предназначенная для прошивки микроконтроллеров AVR.
В результате в папке avrdude содержатся три файла:
В эту же папку следует скопировать прошиваемый hex-файл (в рассматриваемом примере - файл bike.ino.eightanaloginputs.hex).
В Arduino IDE версии 1.6.6 представлена программа avrdude версии 6.0.1
Затем в консоли требуется ввести команду:
-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После ввода команды выполняется прошивка hex-файла в Arduino:
Готово!Читайте также: