Jak działa reset do ustawień fabrycznych?

18

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?

Pryda
źródło

Odpowiedzi:

20

Mówiąc ogólnie, funkcja przywracania ustawień fabrycznych, o której wspominasz, przywróci wszystkie zapisane dane zmiennych do wartości domyślnych. Nie jest prawdą, że wszystkie wbudowane urządzenia mają taką możliwość. Niektóre robią, ale nie wszystkie.

Jeśli chcesz, aby Twoje urządzenie samo obsługiwało przywracanie domyślnego oprogramowania fabrycznego, projekt musi zawierać pamięć w obwodzie, aby zapisać ten obraz. Typowym składnikiem tego jest układ flash SPI. Następnie należy zmienić program ładujący, aby obsługiwał tryb pobierania obrazu oprogramowania układowego z układu flash SPI zamiast wprowadzania obrazu przez port szeregowy. Jeśli urządzenie nie obsługuje oprogramowania wewnętrznego wymienianego przez użytkownika, zazwyczaj nie jest konieczne zapewnienie możliwości przywrócenia domyślnego oprogramowania fabrycznego.

Michael Karas
źródło
1
Naprawdę nie jest to odpowiedź, więc zostawię to jako komentarz: niektóre urządzenia po prostu przywracają ustawienia domyślne, jest to łatwe (na przykład, po prostu skasuj ustawienia użytkownika). Inne (jak sądzę, mniej) resetują oprogramowanie układowe do ustawień fabrycznych. Jest to trudniejsze, ponieważ potrzebujesz sposobu na zastąpienie istniejącego oprogramowania układowego starszym oprogramowaniem.
Dithermaster
11

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.

Jeroen3
źródło
10

Przywracanie ustawień fabrycznych jest tym, czym chcesz. To zależy od aplikacji i typu urządzenia.

Zazwyczaj robię dwie rzeczy:

  1. Upewnij się, że zawsze istnieje niezawodny sposób na wejście do programu ładującego , aby nawet częściowa / niewłaściwa aktualizacja oprogramowania układowego nie spowodowała uszkodzenia urządzenia.
  2. Masz sposób na zresetowanie ustawień oprogramowania układowego na wypadek, gdyby użytkownik coś zmienił, dana kombinacja ustawień spowoduje awarię aplikacji itp.

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:

  1. Power-on + przycisk wciśnięty = wywołaj bootloader
  2. Włączanie, przycisk nie naciśnięty = odczekaj 3 s, migaj diodę, jeśli przycisk zostanie naciśnięty (w oknie) i przytrzymany przez 5 s, a następnie zresetuj ustawienia oprogramowania układowego
filo
źródło
2

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.

Papież
źródło