Come funziona il ripristino delle impostazioni di fabbrica?


18

Tutti i dispositivi incorporati includono un'opzione "Ripristino delle impostazioni di fabbrica" ​​che consente all'utente di ripristinare il dispositivo in caso di problemi.

Sto sviluppando un firmware su una scheda STM32. Il firmware include un caricatore di avvio che consente di aggiornare l'applicazione tramite UART (inviando un file binario che contiene la nuova immagine) e voglio aggiungere un'altra funzionalità: un ripristino delle impostazioni di fabbrica. Quando l'utente sceglie questa opzione, la scheda deve caricare l'immagine originale.

Che cos'è un ripristino delle impostazioni di fabbrica? Si tratta di caricare di nuovo l'intero file binario in memoria o di chiamare semplicemente una funzione che reinizializza le variabili modificate dall'utente finale?

Quali sono le migliori pratiche per farlo?

Dove conservare l'originale FW? è in un flash interno o esterno?

Risposte:


20

In generale, la funzione di ripristino di fabbrica menzionata ripristinerà tutte le informazioni di dati variabili salvate ai valori predefiniti. Non è vero che tutti i dispositivi integrati abbiano questa capacità. Alcuni lo fanno ma non tutti.

Se vuoi che il tuo dispositivo supporti un ritorno al firmware predefinito di fabbrica stesso, il tuo design deve incorporare una memoria nel circuito per memorizzare quell'immagine. Un componente comune per questo è un chip flash SPI. Quindi è necessario modificare anche il proprio caricatore di avvio per supportare una modalità per ottenere un'immagine del firmware dal chip flash SPI invece di far entrare l'immagine attraverso la porta seriale. Se il dispositivo non supporta il firmware sostituibile dall'utente, di solito non è necessario fornire un mezzo per ripristinare il firmware predefinito di fabbrica.


1
Non proprio una risposta, quindi la lascerò come commento: alcuni dispositivi ripristinano le impostazioni predefinite, questo è facile (ad esempio, basta cancellare le impostazioni dell'utente). Altri (meno, credo) ripristinano il firmware alle impostazioni di fabbrica. Questo è più difficile, poiché è necessario un modo per sostituire il firmware esistente con firmware più vecchio.
Dithermaster

11

Se prendi l'esempio più comune di default di fabbrica, è UEFI (BIOS) del tuo PC.

È realizzato con un chip flash e un chip di memoria SRAM di backup della batteria volatile. Il chip flash contiene il programma e SRAM contiene le impostazioni.

Al ripristino delle impostazioni di fabbrica , il contenuto dello sram volatile viene cancellato. Al successivo avvio, rileva che il checksum delle impostazioni non è valido e ripristina i valori predefiniti contenuti nel programma.

Questo non si limita al backup della batteria SRAM, lo stesso può essere fatto con FLASH o EEPROM. Ma la batteria di backup SRAM può essere cancellata senza accendere la macchina.


Un altro termine è ripristino di fabbrica , ciò significa semplicemente che contiene il programma principale due volte. Ma solo una copia può essere aggiornata dall'utente.
Il Dual BIOS è un esempio di questo.

Su sistemi di livello superiore, come telefoni e computer, significa che utilizza i file di installazione per ripristinare il sistema operativo alle condizioni di fabbrica.


10

Il ripristino delle impostazioni di fabbrica è quello che vuoi che sia. Dipende dall'applicazione e dal tipo di dispositivo.

Di solito faccio due cose:

  1. Assicurati che ci sia sempre un modo affidabile per accedere al bootloader , in modo che anche un aggiornamento del firmware parziale / errato non possa bloccare il dispositivo.
  2. Avere un modo per ripristinare le impostazioni del firmware nel caso in cui l'utente cambi qualcosa, una particolare combinazione di impostazioni causerà l'arresto anomalo dell'applicazione, ecc.

Entrambi possono essere eseguiti con pulsanti (pressione lunga, pressione breve), interruttori DIP o altri mezzi di comunicazione (es. UART, USB).

Ad esempio, se si utilizza un GPIO per un singolo pulsante, è possibile utilizzarlo nel modo seguente:

  1. Pulsante di accensione + premuto = richiama bootloader
  2. Accensione, pulsante non premuto = attendere 3 secondi, lampeggiare un led, se un pulsante viene premuto (all'interno della finestra) e tenuto premuto per 5 secondi, quindi ripristinare le impostazioni del firmware

2

Come hai detto, il ripristino delle impostazioni di fabbrica ricarica l'immagine di fabbrica iniziale sul dispositivo. Questo può essere necessario in caso di una configurazione errata in cui l'utente non sapeva cosa faceva o voleva solo tornare alla configurazione iniziale. In casi come il tuo in cui viene eseguito un aggiornamento software, potresti voler coprire alcuni scenari di errore durante l'aggiornamento. In questo caso, potresti persino avere una memoria flash dedicata con l'immagine originale di fabbrica memorizzata che può essere selezionata usando un ponticello per ripristinare la configurazione predefinita di fabbrica. Ciò viene ad esempio eseguito sulle schede madri dei computer in cui è possibile ripristinare la configurazione BIOS originale nel caso in cui un aggiornamento fallisca e danneggi l'immagine principale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.