Как работает сброс к заводским настройкам?

18

Все встроенные устройства включают опцию «Factory reset», которая позволяет пользователю сбросить настройки устройства, если что-то не так.

Я разрабатываю прошивку на плате STM32. Прошивка включает в себя загрузчик, который позволяет обновить приложение через UART (отправив двоичный файл, содержащий новый образ), и я хочу добавить еще одну функцию: сброс настроек к заводским. Когда пользователь выбирает эту опцию, доска должна загрузить исходное изображение.

Что такое сброс к заводским настройкам? Речь идет о загрузке всего двоичного файла в память снова или просто о вызове функции, которая повторно инициализирует переменные, измененные конечным пользователем?

Каковы лучшие практики для этого?

Где хранить оригинальные FW? это во внутренней или внешней вспышке?

Pryda
источник

Ответы:

20

Вообще говоря, функция сброса к заводским настройкам, о которой вы упоминаете, восстановит любую сохраненную переменную информацию до значений по умолчанию. Это не правда, что все встроенные устройства имеют такую ​​возможность. Некоторые делают, но не все.

Если вы хотите, чтобы ваше устройство поддерживало возврат к встроенному ПО по умолчанию, то ваш проект должен включать память в схему для хранения этого изображения. Распространенным компонентом для этого является флэш-чип SPI. Затем ваш загрузчик также необходимо изменить, чтобы он поддерживал режим получения образа прошивки с микросхемы флэш-памяти SPI, а не для передачи образа через последовательный порт. Если ваше устройство не поддерживает заменяемую пользователем прошивку, то обычно нет необходимости предоставлять средство для восстановления заводской прошивки по умолчанию.

Майкл Карас
источник
1
На самом деле это не ответ, поэтому я оставлю его в качестве комментария: некоторые устройства просто возвращают настройки к значениям по умолчанию, это легко (например, просто стереть пользовательские настройки). Другие (я думаю, меньше) сбрасывают прошивку до заводских настроек. Это сложнее, так как вам нужен способ заменить существующую прошивку на более старую.
Мастер дизеринга
11

Если вы возьмете наиболее распространенный пример заводских настроек по умолчанию, это UEFI (BIOS) вашего ПК.

Это сделано с чипом вспышки и чипом памяти SRAM энергозависимой батареи. Флеш-чип содержит программу, а SRAM содержит настройки.

При сбросе настроек содержимое летучей памяти удаляется. При следующей загрузке он обнаруживает, что контрольная сумма настроек недействительна, и восстанавливает значения по умолчанию, содержащиеся в программе.

Это не ограничивается резервным копированием SRAM, то же самое можно сделать с FLASH или EEPROM. Но резервную копию батареи SRAM можно стереть без включения питания машины.


Другой термин - восстановление фабрики , это просто означает, что он содержит основную программу дважды. Но только одна копия может быть обновлена ​​пользователем.
Dual-BIOS является примером этого.

В системах более высокого уровня, таких как телефоны и компьютеры, это означает, что он использует установочные файлы для восстановления операционной системы до заводских условий.

Jeroen3
источник
10

Сброс к заводским настройкам - это то, что вы хотите. Это зависит от приложения и типа устройства.

Я обычно делаю две вещи:

  1. Убедитесь, что всегда есть надежный способ войти в загрузчик , чтобы даже частичное / неправильное обновление прошивки не могло блокировать устройство.
  2. Есть способ сбросить настройки прошивки в случае, если пользователь что-то изменит, конкретная комбинация настроек приведет к сбою приложения и т. Д.

И то, и другое можно сделать с помощью кнопок (длительное нажатие, короткое нажатие), DIP-переключателей или других средств связи (например, UART, USB).

Например, если вы используете один GPIO для одной кнопки, вы можете использовать его следующим образом:

  1. Power-on + кнопка нажата = вызвать загрузчик
  2. Включение питания, кнопка не нажата = ждать 3 с, мигать светодиодом, если кнопка нажата (в пределах окна) и удерживается в течение 5 с, затем сбросить настройки прошивки
фило
источник
2

Как вы сказали, сброс к заводским настройкам перезагружает исходный заводской образ на устройство. Это может быть необходимо в случае неверной конфигурации, когда пользователь просто не знает, что он делает, или просто хочет вернуться к исходной конфигурации. В тех случаях, когда вы выполняете обновление программного обеспечения, вы можете охватить определенные сценарии сбоев во время обновления. В этом случае у вас может даже быть выделенная флэш-память с сохраненным исходным заводским образом, который можно выбрать с помощью перемычки для восстановления заводских настроек по умолчанию. Это, например, делается на материнских платах компьютера, где вы можете восстановить исходную конфигурацию BIOS в случае сбоя обновления и повреждения основного образа.

po.pe
источник