Мне было приказано «записать загрузчик» на Arduino, чтобы исправить полученную ошибку. Как я могу это сделать? (А что именно является загрузчиком?)
bootloader
Парень в шляпе
источник
источник
Ответы:
Загрузчик - это небольшая программа, которая (почти) всегда работает на Arduino. Он управляет загрузкой и запуском эскизов, которые вы делаете, и мигает светодиодом штыря 13 при каждой перезагрузке платы.
Чтобы записать загрузчик:
Tools ► Board ►
в IDE. Дважды проверьте это, даже если вы могли бы загружать программы правильно; загрузка не всегда требует правильной доски.Tools ► Programmer ►
.Tools ► Burn Bootloader
и подождите. Это не должно занять больше минуты, и часто занимает всего несколько секунд.Источники:
источник
{line 1} or other dedicated ISP programmer.
Что такое загрузчик?
Загрузчик представляет собой небольшой фрагмент кода, находящийся в «верхней» части памяти программы. Обычно он не стирается при загрузке новых эскизов. Его назначение активировать сразу после сброса (предохранители настроены на запуск кода по адресу загрузчика, а не по адресу 0x0000). Загрузчик будет ждать короткое время (например, одну секунду), чтобы увидеть, поступают ли данные «программирования» на последовательный порт.
Если это так, он читает эти данные и декодирует их, чтобы перепрограммировать оставшуюся часть флэш-памяти. Работая вместе с программой загрузки (обычно avrdude), новый эскиз отправляется через последовательный порт. Загрузчик стирает страницы флэш-памяти и заменяет их новым кодом. После этого он выполняет новый код.
Если инструкции не поступают, загрузчик переходит на адрес 0x0000, чтобы выполнить существующий эскиз на плате.
Как заменить загрузчик
Альтернативный метод программирования загрузчика - использовать набросок, который я недавно написал, который работает на:
«Программная» плата запускает эскиз, в котором есть загрузчики для нескольких плат, жестко запрограммированных в нем. Вы подключаете плату программирования к целевой плате (плате, требующей загрузчик) с помощью 6 соединительных проводов, как показано на рисунке.
Эта конкретная фотография иллюстрирует, как один Uno программирует другой.
Вы запускаете эскиз (используя последовательный монитор, чтобы дать ему команды). Сначала он идентифицирует целевой чип:
Вы нажимаете G, чтобы запрограммировать его.
Для Уно это занимает одну секунду. Для программирования Mega2560 требуется 3 секунды.
Подробные инструкции у программиста загрузчика Atmega
Код можно скачать с Github: nickgammon / arduino_sketches
источник