Semua perangkat yang disematkan menyertakan opsi "Reset pabrik" yang memungkinkan pengguna untuk mereset perangkatnya jika ada sesuatu yang salah.
Saya mengembangkan Firmware pada papan STM32. Firmware mencakup boot loader yang memungkinkan untuk meningkatkan aplikasi melalui UART (Dengan mengirim file biner yang berisi gambar baru) dan saya ingin menambahkan fitur lain: Reset pabrik. Ketika pengguna memilih opsi ini, papan akan memuat gambar asli.
Apa itu reset pabrik? Apakah ini tentang memuat seluruh file biner ke dalam memori lagi atau hanya memanggil fungsi yang menginisialisasi ulang variabel yang dimodifikasi oleh pengguna akhir?
Apa praktik terbaik untuk melakukannya?
Di mana menyimpan FW asli? apakah itu dalam flash internal atau eksternal?
Jika Anda mengambil contoh standar pabrik yang paling umum, ini adalah UEFI (BIOS) PC Anda.
Ini dibuat dengan chip flash dan chip memori SRAM cadangan baterai yang mudah menguap. Chip flash berisi program, dan SRAM berisi pengaturan.
Pada pengaturan ulang pabrik , isi sram yang mudah menguap dihapus. Pada boot berikutnya, mendeteksi bahwa checksum dari pengaturan tidak valid dan mengembalikan default yang terkandung dalam program.
Ini tidak terbatas pada SRAM cadangan baterai, hal yang sama dapat dilakukan dengan FLASH atau EEPROM. Tetapi baterai cadangan SRAM dapat dihapus tanpa menyalakan mesin.
Istilah lain adalah pemulihan pabrik , ini berarti bahwa itu berisi program utama dua kali. Tetapi hanya satu salinan yang dapat ditingkatkan oleh pengguna.
Dual-BIOS adalah contohnya.
Pada sistem level yang lebih tinggi, seperti ponsel dan komputer, ini berarti ia menggunakan file instalasi untuk mengembalikan sistem operasi ke kondisi pabrik.
sumber
Reset pabrik adalah apa pun yang Anda inginkan. Itu tergantung pada jenis aplikasi dan perangkat.
Saya biasanya melakukan dua hal:
Keduanya dapat dilakukan dengan tombol (penekanan lama, penekanan singkat), sakelar DIP atau sarana komunikasi lainnya (mis. UART, USB).
Misalnya jika Anda menggunakan satu GPIO untuk satu tombol, Anda dapat menggunakannya dengan cara berikut:
sumber
Seperti yang Anda katakan pengaturan ulang pabrik memuat ulang gambar awal pabrik ke perangkat. Ini dapat diperlukan jika terjadi kesalahan konfigurasi di mana pengguna tidak tahu apa yang dia lakukan atau hanya ingin kembali ke konfigurasi awal. Dalam kasus seperti milik Anda saat pembaruan perangkat lunak dilakukan, Anda mungkin ingin membahas skenario kegagalan tertentu selama pembaruan. Dalam hal ini Anda bahkan mungkin memiliki memori flash khusus dengan gambar pabrik asli yang disimpan yang dapat dipilih menggunakan jumper untuk mengembalikan konfigurasi default pabrik. Hal ini misalnya dilakukan pada komputer utama jika Anda dapat mengembalikan konfigurasi BIOS asli jika terjadi pembaruan yang gagal dan merusak gambar utama.
sumber