Проста відповідь - так - вам потрібно достатньо блоків спалаху для підтримки завантажувача та зображень коду A / B, якщо ви хочете отримати високу надійність. Перш ніж активувати нове зображення, ви можете написати цілу річ, перевірити її та, можливо, повторити спробу.
Однак це є дорогим / надійна стратегія , і є речі , які ви можете зробити , щоб зменшити накладні витрати. Підтримка оновлень OTA на низькому рівні також може бути частиною вбудованого програмного забезпечення або ОС, так що ви можете уникати власних програм, якщо ви не хочете вчитися. Ця функція може бути описана як FOTA
.
Розбиття бази коду дозволяє здійснювати поступові оновлення, найкраще, якщо завантажувач може підключити мережеве з'єднання, завантажити та перевірити код, не потребуючи жодного запасного коду користувача. За допомогою локального шлюзу управління цим завданням може бути делеговане з недорогих кінцевих точок.
Багато пристроїв мають невелику кількість спалаху стирання слів, і навіть якщо цього не зробити, зазвичай можна встановити біти, не потребуючи стерти цілий блок. Ці функції можна використовувати для маніпулювання таблицями стрибків і зшивання коду, який оновлюється в шматки розмірів блоків. Навіть якщо ви спочатку планували повноцінний простір коду A / B, вам може знадобитися перейти до більш складної схеми, коли база коду зростає занадто сильно.
Щоб уточнити функціональність, яку можна досягти за допомогою складного рішення прошивки в режимі "ефір", завантажувач і потенційно первинний стек зв'язку можуть залишатись резидентними, тоді як повний залишок користувальницького додатка знову миготить. Для цього не потрібні накладні витрати (особливо якщо розділ блоку м'який). У сценарії, коли стек зв’язку потрібно оновити, область, яка зазвичай використовується для коду програми, може бути тимчасово використана під час завантаження та перевірки. Для досягнення цього потрібна певна підтримка в SoC, але пристрої 2-го і 3-го поколінь, розроблені для цього, вже існують.