Як працює скидання фабрики?


18

Усі вбудовані пристрої містять опцію "Скидання на заводські налаштування", яка дозволяє користувачеві скинути свій пристрій, якщо щось не так.

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

Що таке скидання на завод? Йдеться про повторне завантаження цілого бінарного файлу в пам'ять або це просто виклик функції, яка повторно ініціалізує змінні, змінені кінцевим користувачем?

Які найкращі практики для цього?

Де зберігати оригінальний FW? це у внутрішньому чи зовнішньому спалаху?

Відповіді:


20

Взагалі кажучи, згадана вами функція скидання фабрики відновить будь-яку збережену інформацію змінних даних назад до значень за замовчуванням. Неправда, що всі вбудовані пристрої мають таку можливість. Деякі роблять, але не всі.

Якщо ви хочете, щоб ваш пристрій підтримував повернення до заводської прошивки за замовчуванням, тоді ваш дизайн повинен включати в схему пам'ять для зберігання цього зображення. Поширений компонент для цього - флеш-чіп SPI. Тоді ваш завантажувач також потрібно змінити, щоб підтримувати режим отримання зображення мікропрограмного забезпечення з флеш-чіпа SPI, а не отримання зображення через послідовний порт. Якщо ваш пристрій не підтримує прошивку, яку можна змінити користувачем, тоді зазвичай не потрібно надавати засоби для відновлення до встановлених програмних програм за замовчуванням.


1
Не дуже відповідь, тому я залишу це як коментар: деякий пристрій просто повертає налаштування до значень за замовчуванням, це просто (наприклад, просто стерти налаштування користувача). Інші (менше, я думаю) скинули прошивку до заводських налаштувань. Це складніше, оскільки вам потрібен спосіб заміни існуючої вбудованої програми на стару.
Дітермайстер

11

Якщо ви берете найпоширеніший приклад заводських налаштувань, це UEFI (BIOS) вашого ПК.

Він виготовлений з флеш-мікросхемою та мінливим мікросхемами SRAM резервного копіювання. Флеш-чіп містить програму, а SRAM містить налаштування.

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

Це не обмежується резервним завантаженням SRAM акумулятора, те ж саме можна зробити з FLASH або EEPROM. Але резервну батарею SRAM можна стерти, не ввімкнувши живлення машини.


Інший термін - відновлення на заводі , це просто означає, що він містить основну програму двічі. Але лише одну копію можна оновити користувачем.
Приклад цього - Dual-BIOS.

У таких системах вищого рівня, як телефони та комп’ютери, це означає, що він використовує файли встановлення для відновлення операційної системи до заводських умов.


10

Скидання заводу - це все, що ви хочете. Це залежить від програми та типу пристрою.

Зазвичай я роблю дві речі:

  1. Переконайтесь, що завжди є надійний спосіб ввести завантажувач , щоб навіть часткове / неправильне оновлення мікропрограмного забезпечення не змогло цеглити пристрій.
  2. Майте спосіб скинути налаштування мікропрограмного забезпечення у випадку, якщо користувач щось змінить, певна комбінація налаштувань призведе до збою програми та ін.

І те й інше можна виконати за допомогою кнопок (тривалих натискань, коротких натискань), DIP-комутаторів або інших засобів зв'язку (наприклад, UART, USB).

Наприклад, якщо ви використовуєте один GPIO для однієї кнопки, ви можете використовувати його наступним чином:

  1. Увімкнення + натиснута кнопка = викликати завантажувач
  2. Увімкнення живлення, кнопка не натиснута = зачекайте 3 секунди, блимайте світлодіодом, якщо натиснути кнопку (у вікні) і утримувати протягом 5 секунд, тоді скиньте настройки прошивки

2

Як ви сказали, скидання заводу перезавантажує початковий заводський образ на пристрій. Це може знадобитися у випадку неправильної конфігурації, коли користувач просто не знав, що він робить, або просто хоче повернутися до початкової конфігурації. У випадках, як ваш, коли було виконано оновлення програмного забезпечення, ви можете охопити певні сценарії відмов під час оновлення. У цьому випадку у вас може бути навіть виділена флеш-пам’ять із збереженим оригінальним заводським зображенням, яке можна вибрати за допомогою перемички для відновлення заводської конфігурації за замовчуванням. Це робиться, наприклад, на материнських платах комп'ютера, якщо ви можете відновити початкову конфігурацію BIOS у випадку, якщо оновлення не вдасться і пошкодить основне зображення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.