Чтобы ответить на вопрос, касающийся «прошивки» на микроконтроллере ATmega328p, используемого в большинстве плат Arduino:
На ATmega вообще нет прошивки, кроме загрузчика. Программы, которые вы пишете, работают непосредственно на оборудовании.
Существуют определенные настройки «предохранителей», которые устанавливаются с помощью программатора ISP . Однако их всего 24 (три байта), и они в основном относятся к низкоуровневой конфигурации, и я не думаю, что вы спрашиваете:
Существует также загрузчик , который представляет собой небольшую программу, которая находится в отдельном сегменте программной памяти MCU и позволяет ему обновляться при запуске (так программируются все ардуино). Тем не менее, он запускается только в течение короткого периода времени при запуске и полностью удаляется из памяти после перехода MCU к основной программе.
Наконец, на большинстве плат Arduino есть вспомогательные микроконтроллеры (ATmega16U2 / 8U2), которые используются в качестве последовательных USB-интерфейсов, которые можно обновлять, чтобы они вели себя по-разному (например, эмулировали клавиатуру / мышь), но, опять же, это на самом деле не является изменением. к ядру процессора, так что считается ли он «установкой другой прошивки», зависит от того, как вы определили arduino.
На самом деле, я настоятельно рекомендую ознакомиться с таблицей ATmega328P . Это документация для MCU, которая в основном образует «Arduino». Он должен учитывать то, что кажется ошибочным.