Bootloader

Относится к коду, записанному во флэш-память Arduino, который запускается каждый раз при включении платы. Он запускает выполнение загруженных пользователем программ и позволяет загружать скетчи с ПК через USB-соединение. Этот тег следует использовать для вопросов о модификации, изменении, загрузке загрузчика по умолчанию.


Загрузчик – это небольшой фрагмент кода, загружаемый в старшую часть памяти программ (флэш-память). Он необязательно вызывается процессором после сброса (в зависимости от настройки фьюза BOOTRST).

Его цель состоит в том, чтобы разрешить самопрограммирование флэш-памяти, как правило, путем проверки последовательного порта на определенные последовательности «программирования» в течение первой секунды или около того после сброса. Если такая последовательность обнаружена, загрузчик отвечает программатору (обычно avrdude, работающему на хост-компьютере), и совместно с программатором принимает и выполняет инструкции по очистке и перепрограммированию памяти, изменению EEPROM, если при желании и замените предохранители, если хотите.

Использование загрузчика позволяет избежать необходимости в специальном оборудовании для загрузки нового кода. Однако для изменения самого загрузчика (что обычно не требуется) необходим специальный программатор, который подключается к разъему ICSP (In Circuit Serial Programming) платы Arduino.


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

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

Вопросы, связанные с [bootloader]: