फैक्ट्री रीसेट कैसे काम करता है?


18

सभी एम्बेडेड उपकरणों में एक "फ़ैक्टरी रीसेट" विकल्प शामिल है जो उपयोगकर्ता को कुछ गलत होने पर अपने डिवाइस को रीसेट करने की अनुमति देता है।

मैं एक STM32 बोर्ड पर एक फर्मवेयर विकसित कर रहा हूं। फर्मवेयर में एक बूट लोडर शामिल है जो UART के माध्यम से एप्लिकेशन को अपग्रेड करने की अनुमति देता है (एक बाइनरी फ़ाइल भेजकर जिसमें नई छवि होती है) और मैं एक और विशेषता जोड़ना चाहता हूं: एक कारखाना रीसेट। जब उपयोगकर्ता इस विकल्प को चुनते हैं, तो बोर्ड मूल छवि को लोड करेगा।

फैक्टरी रीसेट क्या है? क्या यह पूरी बाइनरी फ़ाइल को फिर से मेमोरी में लोड करने के बारे में है या यह सिर्फ एक फ़ंक्शन कह रहा है जो अंतिम उपयोगकर्ता द्वारा संशोधित चर को फिर से संगठित करता है?

ऐसा करने के लिए सबसे अच्छा अभ्यास क्या हैं?

मूल एफडब्ल्यू कहां स्टोर करें? क्या यह आंतरिक या बाहरी फ्लैश में है?

जवाबों:


20

आम तौर पर आपके द्वारा उल्लिखित फ़ैक्टरी रीसेट फ़ंक्शन को बोलने से किसी भी सहेजे गए चर डेटा की जानकारी डिफ़ॉल्ट मानों पर वापस आ जाएगी। यह सच नहीं है कि सभी एम्बेडेड उपकरणों में यह क्षमता है। कुछ करते हैं लेकिन सभी नहीं।

यदि आप चाहते हैं कि आपका डिवाइस फ़ैक्टरी डिफ़ॉल्ट फ़र्मवेयर पर लौटने का समर्थन करे तो आपके डिज़ाइन को उस इमेज को स्टोर करने के लिए एक मेमोरी को सर्किट में शामिल करना होगा। इसके लिए एक सामान्य घटक एक SPI फ्लैश चिप है। फिर आपके बूट लोडर को सीरियल पोर्ट के माध्यम से छवि प्राप्त करने के बजाय SPI फ्लैश चिप से फर्मवेयर छवि प्राप्त करने के एक मोड का समर्थन करने के लिए भी बदलना होगा। यदि आपका डिवाइस उपयोगकर्ता बदली फर्मवेयर का समर्थन नहीं करता है, तो आमतौर पर फ़ैक्टरी डिफ़ॉल्ट फ़र्मवेयर को पुनर्स्थापित करने का साधन प्रदान करना आवश्यक नहीं है।


1
वास्तव में इसका जवाब नहीं है इसलिए मैं इसे एक टिप्पणी के रूप में छोड़ दूंगा: कुछ डिवाइस केवल डिफॉल्ट्स के लिए सेटिंग्स को वापस लाते हैं, यह आसान है (उदाहरण के लिए, बस उपयोगकर्ता सेटिंग्स मिटा दें)। अन्य (कम, मुझे लगता है) फ़र्मवेयर को फ़ैक्टरी डिफ़ॉल्ट पर रीसेट करता है। यह कठिन है, क्योंकि आपको मौजूदा फर्मवेयर को पुराने फर्मवेयर के साथ बदलने का एक तरीका चाहिए।
डेथरमैस्टर

11

यदि आप कारखाने के डिफॉल्ट का सबसे आम उदाहरण लेते हैं, तो यह आपके पीसी का यूईएफआई (BIOS) है।

यह फ्लैश चिप और वाष्पशील बैटरी बैकअप SRAM मेमोरी चिप के साथ बनाया गया है। फ्लैश चिप में प्रोग्राम होता है, और SRAM में सेटिंग्स होती हैं।

पर फैक्टरी रीसेट , अस्थिर SRAM की सामग्री को मिटा दिया गया है। अगले बूट पर, यह पता लगाता है कि सेटिंग्स का चेकसम अमान्य है और प्रोग्राम में निहित चूक को पुनर्स्थापित करता है।

यह बैटरी बैकअप SRAM तक सीमित नहीं है, इसे FLASH या EEPROM के साथ किया जा सकता है। लेकिन मशीन को पावर किए बिना बैटरी बैकअप SRAM को मिटाया जा सकता है।


एक और शब्द फैक्टरी रिकवरी है , इसका सीधा सा मतलब है कि इसमें दो बार मुख्य कार्यक्रम शामिल है। लेकिन उपयोगकर्ता द्वारा केवल एक प्रति को अपग्रेड किया जा सकता है।
डुअल-BIOS इसका एक उदाहरण है।

उच्च स्तर की प्रणालियों पर, फोन और कंप्यूटर की तरह, इसका मतलब है कि यह ऑपरेटिंग सिस्टम को फ़ैक्टरी स्थितियों को पुनर्स्थापित करने के लिए इंस्टॉलेशन फ़ाइलों का उपयोग करता है।


10

फैक्टरी रीसेट जो भी हो आप चाहते हैं कि वह हो। यह एप्लिकेशन और डिवाइस प्रकार पर निर्भर करता है।

मैं आमतौर पर दो काम करता हूं:

  1. सुनिश्चित करें कि वहाँ हमेशा एक है बूटलोडर में प्रवेश करने का विश्वसनीय तरीका है , ताकि आंशिक / गलत फर्मवेयर अपडेट भी डिवाइस को ईंट न कर सके।
  2. फर्मवेयर सेटिंग्स को रीसेट करने का एक तरीका हैउपयोगकर्ता द्वारा कुछ बदलने के मामले में है, एक विशेष सेटिंग संयोजन एप्लिकेशन आदि को क्रैश कर देगा।

दोनों बटन (लंबे प्रेस, लघु प्रेस), डीआईपी स्विच या अन्य संचार साधनों (जैसे। UART, USB) के साथ किया जा सकता है।

उदाहरण के लिए यदि आप एक सिंगल बटन के लिए एक GPIO का उपयोग करते हैं तो आप इसे निम्न तरीके से उपयोग कर सकते हैं:

  1. पावर-ऑन + बटन दबाया = बूटलोडर का आह्वान किया
  2. पावर-ऑन, बटन दबाया नहीं गया = 3 एस प्रतीक्षा करें, एक एलईडी को ब्लिंक करें, यदि एक बटन दबाया जाता है (खिड़की के भीतर) और 5 एस के लिए आयोजित होता है तो फर्मवेयर सेटिंग्स रीसेट करें

2

जैसा कि आपने कहा कि कारखाना रीसेट डिवाइस के लिए प्रारंभिक फैक्टरी छवि को पुनः लोड करता है। यह एक गलतफहमी के मामले में आवश्यक हो सकता है जहां उपयोगकर्ता को यह नहीं पता था कि वह क्या करता है या अभी प्रारंभिक कॉन्फ़िगरेशन में वापस जाना चाहता है। आपके जैसे मामलों में एक सॉफ़्टवेयर अपडेट किया जाता है जिसे आप अपडेट के दौरान कुछ विफलता परिदृश्यों को कवर करना चाहते हैं। इस मामले में आपके पास मूल फ़ैक्टरी मेमोरी के साथ एक समर्पित फ्लैश मेमोरी भी हो सकती है जिसे फ़ैक्टरी डिफ़ॉल्ट कॉन्फ़िगरेशन को पुनर्स्थापित करने के लिए जम्पर का उपयोग करके चुना जा सकता है। यह कंप्यूटर के कीबोर्ड पर किया जाता है, यदि आप मुख्य BIOS कॉन्फ़िगरेशन को पुनर्स्थापित कर सकते हैं, तो मुख्य अद्यतन को विफल करने और दूषित करने की स्थिति में।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.