Все встроенные устройства включают опцию «Factory reset», которая позволяет пользователю сбросить настройки устройства, если что-то не так.
Я разрабатываю прошивку на плате STM32. Прошивка включает в себя загрузчик, который позволяет обновить приложение через UART (отправив двоичный файл, содержащий новый образ), и я хочу добавить еще одну функцию: сброс настроек к заводским. Когда пользователь выбирает эту опцию, доска должна загрузить исходное изображение.
Что такое сброс к заводским настройкам? Речь идет о загрузке всего двоичного файла в память снова или просто о вызове функции, которая повторно инициализирует переменные, измененные конечным пользователем?
Каковы лучшие практики для этого?
Где хранить оригинальные FW? это во внутренней или внешней вспышке?
Если вы возьмете наиболее распространенный пример заводских настроек по умолчанию, это UEFI (BIOS) вашего ПК.
Это сделано с чипом вспышки и чипом памяти SRAM энергозависимой батареи. Флеш-чип содержит программу, а SRAM содержит настройки.
При сбросе настроек содержимое летучей памяти удаляется. При следующей загрузке он обнаруживает, что контрольная сумма настроек недействительна, и восстанавливает значения по умолчанию, содержащиеся в программе.
Это не ограничивается резервным копированием SRAM, то же самое можно сделать с FLASH или EEPROM. Но резервную копию батареи SRAM можно стереть без включения питания машины.
Другой термин - восстановление фабрики , это просто означает, что он содержит основную программу дважды. Но только одна копия может быть обновлена пользователем.
Dual-BIOS является примером этого.
В системах более высокого уровня, таких как телефоны и компьютеры, это означает, что он использует установочные файлы для восстановления операционной системы до заводских условий.
источник
Сброс к заводским настройкам - это то, что вы хотите. Это зависит от приложения и типа устройства.
Я обычно делаю две вещи:
И то, и другое можно сделать с помощью кнопок (длительное нажатие, короткое нажатие), DIP-переключателей или других средств связи (например, UART, USB).
Например, если вы используете один GPIO для одной кнопки, вы можете использовать его следующим образом:
источник
Как вы сказали, сброс к заводским настройкам перезагружает исходный заводской образ на устройство. Это может быть необходимо в случае неверной конфигурации, когда пользователь просто не знает, что он делает, или просто хочет вернуться к исходной конфигурации. В тех случаях, когда вы выполняете обновление программного обеспечения, вы можете охватить определенные сценарии сбоев во время обновления. В этом случае у вас может даже быть выделенная флэш-память с сохраненным исходным заводским образом, который можно выбрать с помощью перемычки для восстановления заводских настроек по умолчанию. Это, например, делается на материнских платах компьютера, где вы можете восстановить исходную конфигурацию BIOS в случае сбоя обновления и повреждения основного образа.
источник