Prosta odpowiedź brzmi: tak - potrzebujesz dużej ilości bloków pamięci flash, aby obsłużyć bootloader i obrazy kodu A / B, jeśli chcesz wysokiej niezawodności. Przed aktywacją nowego obrazu możesz napisać całość, zweryfikować ją i potencjalnie spróbować ponownie.
Jednak to jest drogie / niezawodny strategia i są rzeczy, które można zrobić, aby zmniejszyć obciążenie. Wsparcie niskiego poziomu dla aktualizacji OTA może być również częścią oprogramowania układowego lub systemu operacyjnego urządzenia, więc możesz uniknąć samodzielnego tworzenia, chyba że chcesz się uczyć. Ta funkcja może być opisana jako FOTA
.
Partycjonowanie bazy kodu pozwala na przyrostowe aktualizacje, najlepiej, aby bootloader był w stanie nawiązać połączenie sieciowe, pobrać i zweryfikować kod bez potrzeby korzystania z zapasowego kodu użytkownika. Dzięki bramie lokalnej zarządzanie tym zadaniem może być delegowane z tanich punktów końcowych.
Wiele urządzeń ma niewielką ilość flashowania z wymazywaniem słów, a nawet w przypadku niepowodzenia można zwykle ustawić bity bez konieczności usuwania całego bloku. Tych funkcji można używać do manipulowania tabelami skoków i łączenia ze sobą kodu, który jest aktualizowany w blokach wielkości bloków. Nawet jeśli początkowo planowałeś pełną przestrzeń kodu A / B, być może będziesz musiał wrócić do bardziej złożonego schematu, gdy baza kodów wzrośnie za bardzo.
Aby wyjaśnić funkcjonalność, którą można osiągnąć dzięki wyrafinowanemu bezprzewodowemu oprogramowaniu sprzętowemu, moduł ładujący i potencjalnie główny stos komunikacyjny mogą pozostać rezydentne, podczas gdy pełna pozostała przestrzeń aplikacji użytkownika zostanie ponownie flashowana. Nie wymaga to narzutu (szczególnie, jeśli partycjonowanie bloków jest miękkie). W scenariuszu, w którym stos komunikacyjny wymaga aktualizacji, region ogólnie używany dla kodu aplikacji może być tymczasowo używany podczas pobierania i weryfikacji. Osiągnięcie tego wymaga pewnego wsparcia w SoC, ale urządzenia 2. i 3. generacji zaprojektowane z myślą o tym istnieją już.