Wie funktioniert das Zurücksetzen auf die Werkseinstellungen?

18

Alle eingebetteten Geräte enthalten eine Option zum Zurücksetzen auf die Werkseinstellungen, mit der der Benutzer sein Gerät zurücksetzen kann, wenn etwas nicht stimmt.

Ich entwickle eine Firmware auf einer STM32-Karte. Die Firmware enthält einen Bootloader, mit dem die Anwendung über UART aktualisiert werden kann (durch Senden einer Binärdatei, die das neue Image enthält), und ich möchte eine weitere Funktion hinzufügen: Ein Zurücksetzen auf die Werkseinstellungen. Wenn der Benutzer diese Option wählt, lädt die Karte das Originalbild.

Was ist ein Werksreset? Geht es darum, die gesamte Binärdatei erneut in den Speicher zu laden, oder wird nur eine Funktion aufgerufen, die vom Endbenutzer geänderte Variablen neu initialisiert?

Was sind die besten Methoden, um dies zu tun?

Wo soll die Original-FW aufbewahrt werden? ist es in einem internen oder externen Blitz?

Pryda
quelle

Antworten:

20

Im Allgemeinen werden durch die erwähnte Funktion zum Zurücksetzen auf die Werkseinstellungen alle gespeicherten variablen Dateninformationen auf die Standardwerte zurückgesetzt. Es ist nicht wahr, dass alle eingebetteten Geräte diese Fähigkeit haben. Einige tun es, aber nicht alle.

Wenn Ihr Gerät die Wiederherstellung der werkseitigen Standardfirmware selbst unterstützen soll, muss Ihr Design einen Speicher in die Schaltung integrieren, um dieses Image zu speichern. Eine übliche Komponente hierfür ist ein SPI-Flash-Chip. Dann muss Ihr Bootloader auch geändert werden, um einen Modus zum Abrufen eines Firmware-Image vom SPI-Flash-Chip zu unterstützen, anstatt das Image über die serielle Schnittstelle abzurufen. Wenn Ihr Gerät keine vom Benutzer austauschbare Firmware unterstützt, ist es in der Regel nicht erforderlich, ein Mittel zum Wiederherstellen der werkseitigen Standardfirmware bereitzustellen.

Michael Karas
quelle
1
Keine wirkliche Antwort, deshalb lasse ich es als Kommentar: Einige Geräte setzen die Einstellungen einfach auf die Standardeinstellungen zurück. Dies ist einfach (löschen Sie zum Beispiel einfach die Benutzereinstellungen). Andere (meiner Meinung nach weniger) setzen die Firmware auf die Werkseinstellungen zurück. Dies ist schwieriger, da Sie die vorhandene Firmware durch eine ältere Firmware ersetzen müssen.
Dithermaster
11

Wenn Sie das häufigste Beispiel für werkseitige Standardeinstellungen heranziehen, handelt es sich um das UEFI (BIOS) Ihres PCs.

Es besteht aus einem Flash-Chip und einem SRAM-Speicherchip für flüchtige Batterien. Der Flash-Chip enthält das Programm und der SRAM enthält die Einstellungen.

Beim Zurücksetzen auf die Werkseinstellungen wird der Inhalt des flüchtigen Speichers gelöscht. Beim nächsten Start wird festgestellt, dass die Prüfsumme der Einstellungen ungültig ist, und die im Programm enthaltenen Standardeinstellungen werden wiederhergestellt.

Dies ist nicht nur auf das SRAM für die Batterieunterstützung beschränkt, sondern kann auch mit FLASH oder EEPROM durchgeführt werden. Das Backup-SRAM der Batterie kann jedoch gelöscht werden, ohne dass die Maschine eingeschaltet werden muss.


Ein anderer Begriff ist Factory Recovery . Dies bedeutet einfach, dass das Hauptprogramm zweimal enthalten ist. Es kann jedoch nur eine Kopie vom Benutzer aktualisiert werden.
Dual-BIOS ist ein Beispiel dafür.

Auf übergeordneten Systemen wie Telefonen und Computern bedeutet dies, dass die Installationsdateien verwendet werden, um das Betriebssystem auf die werkseitigen Bedingungen zurückzusetzen.

Jeroen3
quelle
10

Der Werksreset ist das, was Sie wollen. Dies hängt von der Anwendung und dem Gerätetyp ab.

Normalerweise mache ich zwei Dinge:

  1. Stellen Sie sicher, dass es immer eine zuverlässige Möglichkeit gibt, in den Bootloader zu gelangen , damit selbst ein teilweises / falsches Firmware-Update das Gerät nicht blockieren kann.
  2. Sie haben die Möglichkeit, die Firmware-Einstellungen zurückzusetzen, falls der Benutzer etwas ändert, eine bestimmte Einstellungskombination die Anwendung zum Absturz bringt usw.

Beides kann mit Tasten (langes Drücken, kurzes Drücken), DIP-Schaltern oder anderen Kommunikationsmitteln (z. B. UART, USB) erfolgen.

Wenn Sie beispielsweise ein GPIO für eine einzelne Schaltfläche verwenden, können Sie dies folgendermaßen tun:

  1. Einschalttaste + gedrückt = Bootloader aufrufen
  2. Einschalten, Taste nicht gedrückt = 3 Sekunden warten, LED blinken, wenn eine Taste (innerhalb des Fensters) gedrückt und 5 Sekunden lang gedrückt wird, dann Firmware-Einstellungen zurücksetzen
filo
quelle
2

Wie Sie sagten, lädt der Factory-Reset das ursprüngliche Factory-Image auf das Gerät zurück. Dies kann bei einer Fehlkonfiguration erforderlich sein, bei der der Benutzer einfach nicht wusste, was er tut, oder einfach nur zur ursprünglichen Konfiguration zurückkehren möchte. In Fällen wie denen, in denen Sie ein Software-Update durchgeführt haben, möchten Sie möglicherweise bestimmte Fehlerszenarien während des Updates behandeln. In diesem Fall verfügen Sie möglicherweise sogar über einen dedizierten Flash-Speicher, in dem das ursprüngliche Werksimage gespeichert ist und der mit einem Jumper ausgewählt werden kann, um die werkseitige Standardkonfiguration wiederherzustellen. Dies geschieht z. B. auf Computer-Mainboards, auf denen Sie die ursprüngliche BIOS-Konfiguration wiederherstellen können, falls ein Update fehlschlagen und das Hauptimage beschädigen würde.

Papst
quelle