Щоб відповісти на аспект Вашого запитання щодо "вбудованого програмного забезпечення" на MCU ATmega328p, який використовується на більшості плат Arduino:
У ATmega прошивки зовсім немає, крім завантажувача. Програми, які ви пишете, працюють безпосередньо на апаратному забезпеченні.
Існують певні настройки "запобіжника", які встановлюються програмістом провайдера . Однак їх всього 24 (три байти), і вони значною мірою стосуються конфігурації низького рівня, і це не те, що я думаю, що ви запитуєте:
Є також Bootloader - це невелика програма, яка сидить в окремому сегменті програмної пам'яті MCU і дозволяє їй оновитись при запуску (саме так запрограмовані всі ардуїно). Однак при запуску він працює лише короткий проміжок часу і повністю вилучається з пам'яті після переходу MCU до основної програми.
Нарешті, на більшості плат arduino є допоміжні MCU (ATmega16U2 / 8U2), які використовуються як USB-послідовний інтерфейс, які можна оновити, щоб поводитись по-різному (наприклад, емуляція клавіатури / миші), але знову ж таки, це насправді не є зміною для основного процесора, тому чи вважається це "встановленням іншої прошивки", залежить від того, як ви визначаєте arduino.
Дійсно, я настійно рекомендую читати таблицю даних ATmega328P . Це документація для MCU, яка в основному формує "Arduino". Він повинен вирішити те, що здається помилковим уявленням.