Wszystkie urządzenia wbudowane zawierają opcję „Przywracanie ustawień fabrycznych”, która pozwala użytkownikowi zresetować urządzenie, jeśli coś jest nie tak.
Rozwijam oprogramowanie układowe na płycie STM32. Oprogramowanie zawiera moduł ładujący, który umożliwia aktualizację aplikacji przez UART (wysyłając plik binarny zawierający nowy obraz) i chcę dodać kolejną funkcję: przywrócenie ustawień fabrycznych. Gdy użytkownik wybierze tę opcję, tablica załaduje oryginalny obraz.
Co to jest przywrócenie ustawień fabrycznych? Czy chodzi o ponowne załadowanie całego pliku binarnego do pamięci, czy po prostu wywołanie funkcji, która ponownie inicjuje zmienne zmodyfikowane przez użytkownika końcowego?
Jakie są najlepsze praktyki, aby to zrobić?
Gdzie przechowywać oryginalny FW? czy jest to lampa wewnętrzna czy zewnętrzna?
Jeśli weźmiesz najczęstszy przykład domyślnych ustawień fabrycznych, jest to UEFI (BIOS) komputera.
Jest wykonany z pamięcią flash i układem pamięci SRAM z podtrzymywaniem bateryjnym. Układ flash zawiera program, a pamięć SRAM zawiera ustawienia.
Po przywróceniu ustawień fabrycznych zawartość lotnego sramu jest kasowana. Przy następnym uruchomieniu wykrywa, że suma kontrolna ustawień jest nieprawidłowa i przywraca wartości domyślne zawarte w programie.
Nie ogranicza się to do SRAM podtrzymania bateryjnego, to samo można zrobić z FLASH lub EEPROM. Ale zapasową baterię SRAM można usunąć bez włączania zasilania urządzenia.
Innym terminem jest przywracanie ustawień fabrycznych , co oznacza po prostu, że zawiera program główny dwa razy. Ale tylko jedna kopia może zostać zaktualizowana przez użytkownika.
Podwójny BIOS jest tego przykładem.
W systemach wyższego poziomu, takich jak telefony i komputery, oznacza to, że używa plików instalacyjnych do przywracania systemu operacyjnego do warunków fabrycznych.
źródło
Przywracanie ustawień fabrycznych jest tym, czym chcesz. To zależy od aplikacji i typu urządzenia.
Zazwyczaj robię dwie rzeczy:
Oba można wykonać za pomocą przycisków (długie naciśnięcia, krótkie naciśnięcia), przełączników DIP lub innych środków komunikacji (np. UART, USB).
Na przykład, jeśli używasz jednego GPIO dla jednego przycisku, możesz użyć go w następujący sposób:
źródło
Jak powiedziałeś, przywrócenie ustawień fabrycznych powoduje ponowne załadowanie początkowego obrazu fabrycznego do urządzenia. Może to być konieczne w przypadku błędnej konfiguracji, w której użytkownik po prostu nie wiedział, co robi, lub po prostu chce wrócić do początkowej konfiguracji. W przypadkach, w których wykonywana jest aktualizacja oprogramowania, możesz chcieć uwzględnić niektóre scenariusze awarii podczas aktualizacji. W takim przypadku możesz mieć nawet dedykowaną pamięć flash z oryginalnym fabrycznym obrazem, który można wybrać za pomocą zworki w celu przywrócenia domyślnej konfiguracji fabrycznej. Odbywa się to np. Na płytach głównych komputerów, na których można przywrócić oryginalną konfigurację systemu BIOS na wypadek niepowodzenia aktualizacji i uszkodzenia głównego obrazu.
źródło