Avrdude. Как скачать, забэкапить и залить заново прошивку
Поначалу я попытался пойти привычным способом 'влоб', достал программатор китайский (на заглавной фотке), подключился по ISP, и скачал прошивку. Попытался её залить назад... Льётся, но верификацию не проходит. Битых несколько часов рыл интернет, чтобы понять, как же можно нормально скачать прошивку с Меги по ISP. Толком ничего вразумительного не нашёл, но зато понял, что прошивку можно скачать и залить обратно и без программатора. Об этом опыте я и напишу ниже. А вот о том, как скачивать прошивку не с Arduino платы, да так чтобы она потом назад заливалась я напишу как-нибудь в следующий раз, когда у меня появится плата, которую можно безбоязненно пускать и в огонь и в воду.
Ладно, к делу. Для начала нам нужна утилита Avrdude, она входит в поставку Arduino IDE и в моей версии лежала в папке '%appdata%Arduino15packagesarduino oolsavrdude6.0.1-arduino2in'. Открываем папку, жмём на пустом месте SHIFT + правая кнопка мыши, а в меню выбираем 'Открыть окно команд'. Теперь приведу простую команду, которая проверяет, что контроллер читается.
avrdude.exe -p atmega2560 -c wiring -P COM5Если всё в порядке, то вы должны увидеть примерно такой текст (см. скриншот).Атрибуты команды:
-p atmega2560 - установка типа контроллера.
-c wiring - установка программатора. Это внутренний программатор в плате Arduino Mega 2560. Может я и не правильно выразился, но тот же атрибут использует IDE, когда заливает скомпилированный скетч.
-P COM5 - настройка порта, в который воткнут USB шнурок от Arduin'ы. Подглядеть можно из IDE.
Дальше - скачаем '.hex' файл с прошивкой из контроллера. Для этого воспользуемся командой:
avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -Uflash:r:'printer_firmware'.hex:iЕсли всё хорошо, ориентируемся на скриншот, прошивка сохраниться в файле 'printer_firmware.hex' рядом с avrdude.exe.Новые атрибуты команды:
-b115200 - скорость порта для программатора.
Uflash:r:'printer_firmware'.hex:i - указание считать прошивку в файл 'printer_firmware.hex'.
Считать считали, теперь её можно бэкапить, но вот как её восстановить потом? Да тоже ничего сложного, команда не будет сильно отличаться от чтения.
Проверяем, что всё хорошо - смотрим на скриншот.Новые атрибуты команды:avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -D -Uflash:w:'printer_firmware'.hex:i
-D - запрещает автоматическую очистку памяти микроконтроллера перед прошиванием.
-Uflash:w:'printer_firmware'.hex:i - указывает на то, что нужно записать в память данные из файла 'printer_firmware.hex'.
Дальше я подключил свою Arduino Mega 2560 назад к рампам и проверил, что прошивка работает корректно. Как видите эксперимент хоть и частично, но удался. Так что и я и вы теперь знаете, как можно забэкапить прошивку из ATmega2560, что установлена на Arduino Mega2560.
Еще больше интересных статей
Водянка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Терпение и труд... 3D Touch, смена прошивки и чуть-чуть про столы и мусор. Глава 3
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Руки чесались в конце концов подключить и запустить 3D Touch, за...
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Пишу для пары сайтов и тут для...
ваш способ я юзаю когда есть м...
Тогда возникает вопрос - а поч...
Собственно попросили распечата...
Я начинающий, странное в куре....
При печати стали появляться шв...
Здравствуйте, друзья. Сталкива...